相关疑难解决方法(0)

关于"了解你的Haskell"的State Monad代码的困惑

我正在尝试使用在线书籍了解Haskell以获得很好的Haskell.

据我所知,到目前为止,我已经能够理解Monads,直到我介绍State Monad这一章.

然而,代码呈现并声称是Monad实现的State类型(我无法在Hoogle中找到它)对我来说似乎太过分了.

  • 首先,我不理解它背后的逻辑,即为什么它应该工作以及作者如何考虑这种技术.(可能会建议相关的文章或白皮书?)

  • 在第4行,建议函数f取1个参数.
    然而,几行下来我们会看到pop,它没有参数!

  • 为了扩展第1点,作者试图使用函数来表示状态.

非常感谢任何帮助理解正在发生的事情.

编辑

敬启者,

以下答案彻底涵盖了我的问题.
我想补充一点:

在阅读了下面提到的文章之后,我找到了上面第二点的答案:所有那段时间我都假设 pop函数会被用作:
stuff >>= pop因为在bind类型中第二个参数是函数,而正确的用法是这样的pop >>= stuff,我在再次阅读之后意识到,如何将符号转化为简单的绑定 - lambdas.

monads haskell state-monad

22
推荐指数
4
解决办法
4063
查看次数

使用Haskell将函数注入Java .class文件

我使用Haskell编写了一个Java字节码解析器,它运行得很好.然而,下一步让我完全难过.

我的Haskell程序需要修改.class文件,以便在执行时,Java程序打印:

" 在执行方法之前输入[此处的方法名称] ",和

执行方法后" 退出[此处的方法名称] ".

我所知道的是,我们需要在调用时附加常量池和方法表System.out.println,但我觉得我仍然缺少某些东西.

  • 解决这个问题的最佳方法是什么?
  • 你怎么知道如何调用System.out.println字节码?
  • 如何使用方法名称存储字符串,以后将其作为参数调用System.out.println

java haskell bytecode code-injection

7
推荐指数
1
解决办法
525
查看次数

标签 统计

haskell ×2

bytecode ×1

code-injection ×1

java ×1

monads ×1

state-monad ×1