|
|
1
4
通过使用
相反,我们可以构建一个精简的writer monad,以按照日志出现的顺序保持日志的状态表示。
然后可以将它洒在阶乘函数中,这意味着函数现在必须返回
虽然这看起来更麻烦和侵入性(ELM语法不像haskell那么简单友好),但这每次都会给您带来可预测的结果,而不必依赖不可靠的副作用。
跑步的结果
请注意,此编写器没有优化(它连接列表,糟糕!)但这个想法是经过实践的 |
|
|
2
6
试试这个:
这似乎给了你想要的输出。
或者,因为
看看生成的代码,编译器似乎在重新排序声明
如果声明在
ELM编译器无法在
|