僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
某所で見た、[n0, n1, n2 ...] を、 n0*0 + n1*1 + n2*2 ... のようにする問題。
>>> def listplus(list): ... y = z = 0 ... for x in list: ... z = z + x * y ... y += 1 ... return z ... >>> listplus([1,2,3,4]) 20
(define listplus (lambda (list) (cond ((null? list) 0) (#t (+ (* 2 (car list)) (listplus (cdr list))))))) (listplus '(1 2 3 4)) 20
やっぱり再帰による繰り返しは、
ちょっと難しい。
python で再帰を書いてみようかとも考えたが、
次回思いついたときにする。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。