calculus e ::= x x ∈ vp [value] | λx.e [lambda] | let x = e1 in e2 [let] | fix x.e [fixpoint] | e1 e2 [app] | if (ec ) et else ee [if ] | delay n e1 e2 n ∈ ℕ [delay] | feed x.e [feed] | ... τp ::= R [real] | N [nat] τ ::= τp | τ → τ [function] 7BMVFT 5FSNT vp ::= r r ∈ ℝ | n n ∈ ℕ v ::= vp | cls(λx.e, E) 5ZQFT ຖαϯϓϧҟͳΔ݁ՌΛฦ͢ ʢ෦ঢ়ଶΛ࣋ͭʹ෭࡞༻Λѻ͏ʣ ͕ɺܾఆతͳ෭࡞༻
. e [abs] | let x = e1 in e2 [let] | fix x . e [fixpoint] | e e [app] | if (ec ) et else ee [if ] | delay n e1 e2 [delay] | mem(e) [mem] | feed x . e [feed] | ‵(e) [quote] | $(e) [splice] τ ::= R | In n ∈ ℕ | τ → τ | ⟨τ⟩ 7BMVFT 5FSNT v ::= | R R ∈ ℝ[number] | cls(e, E) [closure] | ⟨v⟩ [code] 5ZQFT
n_lifted = lift_f(n) let next = additive(n-1 ,gen) `|rate| ($next)(rate) + ($gen)(rate*$n_lifted) / $n_lifted }else{ `|rate| ($gen)(rate) } } `{ let PI = 3.14159265359 let phasor = |freq|{ (self + freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> ($additive)(5,`osc) (r,r) } } } } γϯλοΫεγϡΨʔల։ޙ
n_lifted = lift_f(n) let next = additive(n-1 ,gen) `|rate| ($next)(rate) + ($gen)(rate*$n_lifted) / $n_lifted }else{ `|rate| ($gen)(rate) } } `{ let PI = 3.14159265359 let phasor = |freq|{ (self + freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> ($additive)(5,`osc) (r,r) } } } } εςʔδ0ධՁελʔτ
n_lifted = `5 let next = additive(4 ,gen) `|rate| ($next)(rate) + ($gen)(rate*$n_lifted) / $n_lifted }else{ `|rate| ($gen)(rate) } } `{ let PI = 3.14159265359 let phasor = |freq|{ (self + freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> ($additive)(5,`osc) (r,r) } } } } εςʔδ0ධՁελʔτ
n_lifted = `5 let next = `|rate|{|r3|{|r2|{|r1|{osc(r1*1)/1}(r2)+osc(r2*2)/2}(r3) +osc(r3*3)/3}(rate)+osc(rate*4)/4} `|rate| ($next)(rate) + ($gen)(rate*$n_lifted) / $n_lifted }else{ `|rate| ($gen)(rate) } } `{ let PI = 3.14159265359 let phasor = |freq|{ (self + freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> ($additive)(5,`osc) (r,r) } } } εςʔδ0ධՁத
(self + freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> |rate|osc(rate*1)/1+osc(rate*2)/2+osc(rate*3)/3 +osc(rate*4)/4)+ osc(rate*5)/5 (r,r) } } εςʔδ0ධՁྃ
+ freq/samplerate)%1.0 } let sinwave= |freq|{ phasor(freq)*2.0*PI |> sin } let osc = |freq|{ sinwave(freq) * 0.5 } let dsp = | |{ let f = 200 let r = f |> |rate|osc(rate*1)/1+osc(rate*2)/2+osc(rate*3)/3 +osc(rate*4)/4)+ osc(rate*5)/5 (r,r) } ϝϞϦϨΠΞτ ίϯύΠϧ࣌ʹܾఆՄೳ