相关疑难解决方法(0)

除了Monads之外,还有哪些其他方式可以用纯函数语言处理?

所以我开始围绕Monads(在Haskell中使用).我很好奇IO或状态可以用纯函数语言处理的其他方式(理论上或现实中).例如,有一种名为"mercury"的逻辑语言使用"效果打字".在诸如haskell之类的程序中,效果打字工作会如何?其他系统如何运作?

haskell functional-programming mercury

45
推荐指数
4
解决办法
3014
查看次数

Haskell中的monadic IO构造只是一个约定吗?

Haskell中的monadic IO构造只是一个约定,还是有一个实现原因呢?

你能不能只用FFI进入libc.so而不是你的IO,并跳过IO Monad组件?

无论如何它会起作用,或者结果是不确定的,因为Haskell评估懒惰或其他东西,比如GHC是IO Monad的模式匹配,然后以特殊方式或其他方式处理它.

真正的原因是什么?最后你最终会产生副作用.那么为什么不这么简单呢?

haskell

39
推荐指数
3
解决办法
3397
查看次数

纯函数式编程中是否存在副作用

我一直试图将功能编程包围一段时间?我已经查找了lambda演算,LISP,OCML,F#甚至组合逻辑,但我遇到的主要问题是你如何做需要副作用的事情(与用户交互,与远程服务通信,甚至处理模拟使用)随机抽样)不违反纯函数式编程的基本前提,即对于给定的输入,输出是确定性的?我希望我有意义,如果不是,我欢迎任何正确教育我的尝试.提前致谢.

functional-programming side-effects

17
推荐指数
5
解决办法
3378
查看次数

Monads,组成和计算顺序

所有monad文章经常陈述,monad允许你按顺序排列效果.

但是简单的构图怎么样?是不是

f x = x + 1
g x = x * 2

result = f g x
Run Code Online (Sandbox Code Playgroud)

需要g x先计算f ...

单子会做同样的事情,但处理效果?

monads haskell composition

3
推荐指数
2
解决办法
382
查看次数

关于Haskell IO Monad中的(执行时)

我对IO Monad没有任何问题.但我想了解以下内容:

  1. 在All/almost Haskell教程/教科书中,他们一直说getChar不是一个纯函数,因为它可以给你一个不同的结果.我的问题是:谁说这首先是一个功能.除非你给我执行这个功能,并且我研究了这个实现,我不能保证它是纯粹的.那么,那个实现在哪里?
  2. 在All/almost Haskell教程/教科书中,据说(IO String)是一个动作(当执行时)它可以返回一个String类型的值.这很好,但是这个执行发生的人/地点.当然!计算机正在执行此操作.这也没关系.但由于我只是一个初学者,我希望你原谅我问,这个"执行"的配方在哪里.我猜它不是用Haskell编写的.这个后来的想法是否意味着,毕竟Haskell程序被转换为类似C的程序,最终将转换为程序集 - >机器代码?如果是这样,哪里可以找到Haskell中IO内容的实现?

非常感谢

io haskell function

0
推荐指数
1
解决办法
180
查看次数