0

関数のジェネレーターを作りたいです。

実際に値のジェネレーターがあることに気付きましたがIFn、関数ドメインが無限の場合 (そして値が厳密であるため)、それらを関数のジェネレーターとして使用することは一般的に実用的ではありません。

この機能は存在しますか、それとも自分で実装する必要がありますか?

4

2 に答える 2

0

より完全なソリューションへの gfredericks の回答に基づいて構築します。

(defn fn-gen
  ([result-gen results-n result-scale]
   (gen/fmap
    (fn [results] (fn [& args] (get results (mod (apply + (map hash args)) results-n))))
    (gen/vector (gen/scale (partial + result-scale) result-gen) results-n)))
  ([result-gen result-n] (fn-gen result-gen result-n 10))
  ([result-gen] (fn-gen result-gen 10)))
于 2016-11-18T17:43:50.267 に答える