9

私は SICP からかなりのスキームを学びましたが、今は Common Lisp にもっと興味があります。私は一般的な Lispfoldがでありreduce、左または右の折り畳みに特別な引数があることを知っていますが、 と同等のものは何unfoldですか? グーグルはあまり役に立ちませんでした。実際、展開がないという印象を受けます???

4

2 に答える 2

13

Common Lisp には(loop ... collect ...). 比較

(1 から 10 までの x のループ (* xx) を収集)

を使用した等価性unfold:

(展開 (ラムダ (x) (> x 10))
  (ラムダ (x) (* xx))
  (ラムダ (x) (+ x 1))
  1)

一般的に(unfold p f g seed)は、基本的に

(x =シード、次に(gx)、(px)収集(fx)までループ)

編集:タイプミスを修正

于 2009-10-26T12:23:50.600 に答える
3

common lisp hyperspec はunfold関数を定義しませんが、確かに独自の関数を書くことができます。そのスキーム定義は、ほとんどのシンボルをシンボルごとに変換します。

于 2009-10-26T05:47:21.270 に答える