Clojure:実行時の機能構成
-
21-12-2019 - |
質問
問題:
実行時に作成したい機能f_1 ... f_nのセットがあるとします。
(f_a (f_b (f_c) (f_d)) (f_e))
.
そのため、互いに差し込むことができる関数を知るために、各関数のパラメータと戻り値の種類が必要です。
最初の試行:各関数
に注釈を付ける(defn foo [n f]
^{:params [Number clojure.lang.Fn]
:return String}
(do stuff with f and n, return a string))
.
私は、私がClojure.Coreを使用したいのかどうかのようなこのアプローチが好きではありません。
質問
-
この問題を解決しようとしますか?
-
core.typedはそれを使って助けてくれる?
解決
Solrに渡す検索クエリを作成して、すべての関数に引数のマップを使用し、それらをすべての関数にマップを使用すると、マップに含まれているものはすべて、マップに含まれていることを決定したものであれ、他のすべての関数のマップを返します。変更されていません。だから私は短いでしょう:
- すべての関数の入力と出力にマップを使用してください
- core.typedはすべてマップ であるために役立ちません。
- PRISSCATITESSCHEMAは、どのキーが必要かを知るためにそれを使用し、これらのマップの構造を検証するテストを書くことができるので、非常にに役立ちます。
静的に入力された機能言語への傾きを多くするプロジェクト/人々は、このような場合には、このようなモナドに変わる可能性があります。
所属していません StackOverflow