か,かえしやがれ!
まだlisp風味に書く事が抜けません.
つい,こう書きたくなる.
def loop (array, arg): if (hoge (arg)): return array.append (fuga (arg)) else: return loop (array.append (fuga(arg)), arg) a = loop ([], 3)
ダメなんだよね.
5分考えた.
ああ,このメソッドは破壊的なんだよね.
なにも返さないんだよね.
array = [] def loop (arg): if (hoge (arg)): return array.append (fuga (arg)) else: array.append (fuga(arg)) return loop (arg) a = loop (3)
で済むんだとおもう.
やっぱしっくり来ない.
(define a (let loop ((lst '())(arg 3)) (if (hoge arg) (append array `(,(fuga arg))) (loop (append array `(,(fuga arg))) arg))))
みたいに書くクセが抜けません.
pythonのlambdaはlispのように使ってはいけない.
でも,letみたいな,無駄のない書き方が好きです.
書き捨ての場合は環境中のシンボルを無駄にしないので.
う〜ん,安心します.
はは,良い書き方ないかなぁ..