问题标签 [do-notation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Haskell错误加载模块与mysql
Haskell:数据库.MySQL.Base
加载模块:
我尝试加载模块,但它标记我错误。有谁知道正确的方法是什么?
haskell - 如何在 Haskell 中使用 IO Double 作为常规 Double
我必须遵循代码
当我打电话时
我收到这个错误
如果我将isInCircle
函数的参数更改为IO Double
我得到错误sqrt
和添加......
你能帮助我吗?我的代码:
haskell - Haskell 从 IO 域获取值
在阅读了 Haskell 书籍之后,我有点困惑(或者我只是忘记了)如何从 IO 域中获取一个值,进入“Haskell 世界”来解析它,如下所示:
显然编译器抱怨。Couldn't match [] with IO
. 是否有一个简单的经验法则可以在“世界”之间传递值,或者省略类型符号只是我的坏事?
haskell - haskell 中的操作符 <- 表现如何?
我了解(有点)单子并了解运算符 <- 将从单子中提取值。
但它如何与不同的类型一起工作?
通常,我看到它被用来从 IO monad 中提取字符串。但是在下面的示例代码中,我看不到为什么它在主第 3 行失败,抱怨它期待一种 IO int?编译器如何推断需要 IO int?
<-
它 ( ) 在方法中还有什么作用multWithLog
?
haskell - 是否可以在不使用 do 表示法的情况下编写此代码?
我有一些功能
我想要另一个功能:
foo
不使用do
符号可以写吗?我在想类似的东西,liftA2
但那行不通。
haskell - IO动作中的Haskell递归
仍然是一个初学者,无法弄清楚IO
动作中的递归循环。认为:
我想为我想要随机检查的 10 台机器生成一个列表,然后我可以重复调用一些可以将 10 倍添fNoInspectPerHour
加到列表中的东西吗?
我尝试了一个外部函数,但我无法从IO ()
. 请注意,这putStrLn
只是终止do
-block,因为我不需要控制台输出。
PS。也欢迎在没有的情况下终止do
-block 的建议。putStrLn
parsing - Haskell `do` 表示法如何知道当它不是由返回定义时要取哪个值?
我有这个单子对象。
我有这个定义,item
有人告诉我“读一个字符”,但我真的看不到任何读物。
但是好吧,好吧,也许我应该放松一下“阅读”这个词的字面意思并与之相适应。继续前进,我有
这就是我很困惑的地方。变量中存储了c
什么?由于item
是一个Parser
with parameter Char
,我的第一个猜测是c
存储这样一个对象。但是经过一秒钟的思考,我知道现在do
符号不起作用,你没有得到 monad,你得到了 monad 的内容。太好了,但那告诉我c
就是功能
但显然这是错误的,因为定义的下一行sat
视为c
一个角色。这不仅不是我所期望的,而且它的结构比我所期望的低了三个级别!不是函数,不是Maybe
对象,也不是元组,而是Just
埋在函数内部的元组的左坐标!那个小角色是怎么在外面工作的?是什么指示<-
提取单子的这一部分?
haskell - Haskell IORef - 答案与获得答案的函数
我试图了解如何IORefs
真正使用,并且在遵循我在https://www.seas.upenn.edu/~cis194/spring15/lectures/12-unsafe.html上找到的示例代码时遇到了麻烦
当printCounts
执行“ ”时,为什么在“ ”块c <- newCounter
中没有c
得到执行工作的结果,这似乎应该在第一次调用时分配给常量“”然后永远不会改变?相反,似乎被分配了在该 " " 块中定义的函数,然后每次到达另一个 " " 时都会重新执行该函数。似乎答案在某种程度上在于具有双重嵌套的“ ”类型,但我无法理解为什么这会使函数在调用时重新执行,而不是只评估一次常量。newCounter
return $ do
IO 0
c
return $ do
printCounts
print =<< c
newCounter
IO (IO Int)
c
haskell - 做符号和绑定签名
我是 Haskell 和函数式编程的新手,我想知道为什么这样的示例(“嵌套循环”)有效:
下面的一些东西是一种伪 Haskell 语法,但我希望它能说明我的理解。
我的理解是变成了这样
我觉得这个表达
生成部分应用函数的列表
连接到
最后一步,看起来像这样
变成
我的困境是因为类型return $ b * 10 + a
似乎与类型不同[40 + a, 50 + a, 60 + a]
。
绑定签名不应该是这样的吗?
在这个例子中似乎
和