4

環境

次のコードは無限ループします。

(defn ex13 []
  (take 5
        (run* [x]
       (listo (lcons `a (lcons `b (lcons `c x)))))))

質問:

これは正しい動作であると思われますか? (無限ループ?) 一方、次のようなコード:

(take 5 (range))

5 つの要素を取り、それらを出力します。

4

1 に答える 1

0

これはバグかもしれませんが、run* の結果は決して遅延ではないため、これは正しい方法ではありません。

(run 5 [x]
   (listo (lcons `a (lcons `b (lcons `c x)))))
于 2012-06-01T12:26:49.240 に答える