RosettaCodeData/Task/Forward-difference/Lambdatalk/forward-difference.lambdatalk

28 lines
546 B
Plaintext

{def fdiff
{lambda {:l}
{A.new
{S.map {{lambda {:l :i} {- {A.get {+ :i 1} :l} {A.get :i :l}} } :l}
{S.serie 0 {- {A.length :l} 2}}}}}}
-> fdiff
{def disp
{lambda {:l}
{if {A.empty? {A.rest :l}}
then else {let { {:l {fdiff :l}} } {br}:l {disp :l}}}}}
-> disp
{def L {A.new 90 47 58 29 22 32 55 5 55 73}}
-> L
{disp {L}}
->
[-43,11,-29,-7,10,23,-50,50,18]
[54,-40,22,17,13,-73,100,-32]
[-94,62,-5,-4,-86,173,-132]
[156,-67,1,-82,259,-305]
[-223,68,-83,341,-564]
[291,-151,424,-905]
[-442,575,-1329]
[1017,-1904]
[-2921]