か,かえしやがれ!

まだ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))))

みたいに書くクセが抜けません.

pythonlambdalispのように使ってはいけない.

でも,letみたいな,無駄のない書き方が好きです.

書き捨ての場合は環境中のシンボルを無駄にしないので.

う〜ん,安心します.

はは,良い書き方ないかなぁ..