実際の関数本体で使用できるように、前提条件で実行された計算の結果を格納する方法はありますか。
これはひどいです (コストのかかる計算が 2 回実行されます)。
(defn bar [x]
{:pre [(> (costly-computation x) 1337)]}
(costly-computation x))
これらに沿って何かをしたいと思っています。しかし、これはうまくいきません。
(defn smartbar [x]
(let [res (costly-computation x)]
{:pre [(> res 1337)]}
res))