即我们可以更简洁地写以下内容吗?
bar in_env a = let out_env = foo in_env (R a out_env) in out_env
我想写类似
bar in_env a = foo in_env (R a ??)
但是也许不可能?
答案 0 :(得分:8)
首先,像这样重写它,这样您就可以在下一步中轻松归类化out_env
:
bar in_env a = let out_env = foo in_env . R a $ out_env in out_env
然后,使用递归let
等效于fix
的事实:
import Data.Function (fix)
bar in_env a = fix $ foo in_env . R a