我正在尝试使用在线书籍了解Haskell以获得很好的Haskell.
据我所知,到目前为止,我已经能够理解Monads,直到我介绍State Monad这一章.
然而,代码呈现并声称是Monad实现的State类型(我无法在Hoogle中找到它)对我来说似乎太过分了.
首先,我不理解它背后的逻辑,即为什么它应该工作以及作者如何考虑这种技术.(可能会建议相关的文章或白皮书?)
在第4行,建议函数f取1个参数.
然而,几行下来我们会看到pop,它没有参数!
为了扩展第1点,作者试图使用函数来表示状态.
非常感谢任何帮助理解正在发生的事情.
敬启者,
以下答案彻底涵盖了我的问题.
我想补充一点:
在阅读了下面提到的文章之后,我找到了上面第二点的答案:所有那段时间我都假设 pop函数会被用作:
stuff >>= pop因为在bind类型中第二个参数是函数,而正确的用法是这样的pop >>= stuff,我在再次阅读之后意识到,如何将符号转化为简单的绑定 - lambdas.
我使用Haskell编写了一个Java字节码解析器,它运行得很好.然而,下一步让我完全难过.
我的Haskell程序需要修改.class文件,以便在执行时,Java程序打印:
" 在执行方法之前输入[此处的方法名称] ",和
执行方法后" 退出[此处的方法名称] ".
我所知道的是,我们需要在调用时附加常量池和方法表System.out.println,但我觉得我仍然缺少某些东西.
System.out.println字节码? System.out.println?