Language.mdx
changes and examples
Value: [1e-2 to 2e-1]
This commit is contained in:
parent
079e8f6c8d
commit
ca67140361
20
examples/decay.squiggle
Normal file
20
examples/decay.squiggle
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# The following code was provided by Nuño Sempere, it comes directly from the post https://www.lesswrong.com/s/rDe8QE5NvXcZYzgZ3/p/j8o6sgRerE3tqNWdj
|
||||||
|
## Initial setup
|
||||||
|
yearly_probability_max = 0.95
|
||||||
|
yearly_probability_min = 0.66
|
||||||
|
period_probability_function(epsilon, yearly_probability) = 1 - (1 - yearly_probability) ^ (1 / epsilon)
|
||||||
|
probability_decayed(t, time_periods, period_probability) = 1 - (1 - period_probability) ^ (time_periods - t)
|
||||||
|
|
||||||
|
## Monthly decomposition
|
||||||
|
months_in_a_year=12
|
||||||
|
|
||||||
|
monthly_probability_min = period_probability_function(months_in_a_year, yearly_probability_min)
|
||||||
|
monthly_probability_max = period_probability_function(months_in_a_year, yearly_probability_max)
|
||||||
|
|
||||||
|
probability_decayed_monthly_min(t) = probability_decayed(t, months_in_a_year, monthly_probability_min)
|
||||||
|
probability_decayed_monthly_max(t) = probability_decayed(t, months_in_a_year, monthly_probability_max)
|
||||||
|
probability_decayed_monthly(t) = probability_decayed_monthly_min(t) to probability_decayed_monthly_max(t)
|
||||||
|
|
||||||
|
probability_decayed_monthly
|
||||||
|
## probability_decayed_monthly(6)
|
||||||
|
## mean(probability_decayed_monthly(6))
|
38
examples/givedirectly.squiggle
Normal file
38
examples/givedirectly.squiggle
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# This is a cost effectiveness analysis of givedirectly, originally done by givewell, and translated into Squiggle by Sam Nolan
|
||||||
|
donation_size = 10000
|
||||||
|
proportion_of_funding_available = beta(10, 2)
|
||||||
|
total_funding_available = donation_size * proportion_of_funding_available
|
||||||
|
household_size = 3.7 to 5.7
|
||||||
|
size_of_transfer = 800 to 1200
|
||||||
|
size_of_transfer_per_person = size_of_transfer / household_size
|
||||||
|
|
||||||
|
portion_invested = 0.3 to 0.5
|
||||||
|
amount_invested = portion_invested * size_of_transfer_per_person
|
||||||
|
amount_consumed = (1 - portion_invested) * size_of_transfer_per_person
|
||||||
|
return_on_investment = 0.08 to 0.12
|
||||||
|
increase_in_consumption_from_investments = return_on_investment * amount_invested
|
||||||
|
baseline_consumption = 200 to 350
|
||||||
|
log_increase_in_consumption = log(amount_consumed + baseline_consumption) + log(baseline_consumption)
|
||||||
|
log_increase_in_consumption_from_investment = log(increase_in_consumption_from_investments + baseline_consumption) + log(baseline_consumption)
|
||||||
|
investment_duration = 8 to 12
|
||||||
|
discount_rate = beta(1.004, 20)
|
||||||
|
|
||||||
|
present_value_excluding_last_year = log_increase_in_consumption_from_investment * (1 - (1 + discount_rate) ^ (-investment_duration)) / (log(1 + discount_rate))
|
||||||
|
|
||||||
|
percent_of_investment_returned = 0.15 to 0.25
|
||||||
|
|
||||||
|
pv_consumption_last_year = (log(baseline_consumption + amount_invested * (return_on_investment + percent_of_investment_returned)) - log(baseline_consumption)) / (1 + discount_rate)^investment_duration
|
||||||
|
|
||||||
|
total_pv_of_cash_transfer = pv_consumption_last_year + present_value_excluding_last_year + log_increase_in_consumption
|
||||||
|
|
||||||
|
discount_negative_spoiler = 0.03 to 0.07
|
||||||
|
|
||||||
|
value_discounting_spoiler = discount_negative_spoiler * total_pv_of_cash_transfer
|
||||||
|
|
||||||
|
consumption_increase_per_household = value_discounting_spoiler * household_size
|
||||||
|
|
||||||
|
amount_of_transfers_made = total_funding_available / size_of_transfer
|
||||||
|
|
||||||
|
total_increase_in_ln_consumption = amount_of_transfers_made * consumption_increase_per_household
|
||||||
|
|
||||||
|
total_increase_in_ln_consumption
|
3
examples/wholenumberassignmentevaluation.squiggle
Normal file
3
examples/wholenumberassignmentevaluation.squiggle
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
xY1 = 99
|
||||||
|
aBa3 = xY1 * 2 + 1
|
||||||
|
aBa3 * xY1 + aBa3
|
|
@ -1,39 +1,51 @@
|
||||||
---
|
---
|
||||||
sidebar_position: 2
|
sidebar_position: 2
|
||||||
|
title: Squiggle Language
|
||||||
---
|
---
|
||||||
|
|
||||||
import { SquiggleEditor } from "../../src/components/SquiggleEditor";
|
import { SquiggleEditor } from "../../src/components/SquiggleEditor";
|
||||||
|
|
||||||
# Squiggle Language
|
|
||||||
|
|
||||||
The squiggle language has a very simple syntax. The best way to get to understand
|
The squiggle language has a very simple syntax. The best way to get to understand
|
||||||
it is by simply looking at examples.
|
it is by simply looking at examples.
|
||||||
|
|
||||||
## Basic Language
|
## Expressions and statements
|
||||||
|
|
||||||
As an example:
|
A squiggle **expression** is a value like a float or a distribution or a data structure like an array or a record.
|
||||||
|
|
||||||
|
<SquiggleEditor initialSquiggleString={`mixture(1 to 2, 3, [0.3, 0.7])`} />
|
||||||
|
|
||||||
|
The bottom line of your squiggle buffer should be an expression, which we evaluate (i.e., render). Sometimes we call the last expression of a squiggle file an _export_.
|
||||||
|
|
||||||
|
A squiggle **assignment** is a statement, when you want to bind an expression to a name.
|
||||||
|
|
||||||
<SquiggleEditor
|
<SquiggleEditor
|
||||||
initialSquiggleString={`value_of_work = 10 to 70
|
initialSquiggleString={`value_of_work = 10 to 70
|
||||||
value_of_work`}
|
value_of_work`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
Squiggle can declare variables (`value_of_work = 10 to 70`) and declare exports
|
### Functions
|
||||||
(the lone `value_of_work` line). Variables can be used later in a squiggle program
|
|
||||||
and even in other notebooks!
|
|
||||||
|
|
||||||
An export is rendered to the output view so you can see your result.
|
Some assignments are functions
|
||||||
|
|
||||||
the exports can be expressions, such as:
|
|
||||||
|
|
||||||
<SquiggleEditor initialSquiggleString="normal(0,1)" />
|
|
||||||
|
|
||||||
## Functions
|
|
||||||
|
|
||||||
Squiggle supports functions, including the rendering of functions:
|
|
||||||
|
|
||||||
<SquiggleEditor
|
<SquiggleEditor
|
||||||
initialSquiggleString={`ozzie_estimate(t) = lognormal({mean: 3 + (t+.1)^2.5, stdev: 8})
|
initialSquiggleString={`ozzie_estimate(t) = lognormal(1, t ^ 1.01)
|
||||||
ozzie_estimate
|
nuño_estimate(t) = mixture(0.5 to 2, normal(1, t ^ 1.25))
|
||||||
|
ozzie_estimate(5) * nuño_estimate(5.5)
|
||||||
`}
|
`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
## Data structures
|
||||||
|
|
||||||
|
A squiggle **array** is a list of expressions, which is interpretable as an export.
|
||||||
|
|
||||||
|
<SquiggleEditor
|
||||||
|
initialSquiggleString={`[cauchy(1,1), 4, isNormalized(toPointSet(1 to 2))]`}
|
||||||
|
/>
|
||||||
|
|
||||||
|
A squiggle **record** is a key-value store with dot accessors.
|
||||||
|
|
||||||
|
<SquiggleEditor
|
||||||
|
initialSquiggleString={`d1 = {dist: normal(0, 1), weight: 0.25}
|
||||||
|
d2 = {dist: 5 to 6, weight: 0.75}
|
||||||
|
mx(d1.dist, d2.dist, [d1.weight, d2.weight])`}
|
||||||
|
/>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user