相关疑难解决方法(0)

我如何使用修复程序,它是如何工作的?

我对文档感到有些困惑fix(虽然我认为我理解它现在应该做什么),所以我查看了源代码.这让我更加困惑:

fix :: (a -> a) -> a
fix f = let x = f x in x
Run Code Online (Sandbox Code Playgroud)

这究竟是如何返回固定点的?

我决定在命令行试一试:

Prelude Data.Function> fix id
...
Run Code Online (Sandbox Code Playgroud)

它挂在那里.现在公平地说,这是在我的旧Macbook上,这有点慢.但是,此功能也不能太过,因为任何东西传递给ID给出了同样的事情,回(更不用提,它的吃了没有CPU时间)计算昂贵.我究竟做错了什么?

haskell letrec fixpoint-combinators

82
推荐指数
3
解决办法
1万
查看次数

Haskell rec关键字如何工作?

在箭头符号中,您可以使用rec关键字来编写递归定义.例如:

rec
    name <- function -< input
    input <- otherFunction -< name
Run Code Online (Sandbox Code Playgroud)

这怎么能评估?它似乎只会进入一个无限循环或其他东西.我知道它评估循环箭头组合器,但我不明白它是如何工作的.

编辑:权力示例非常有用.但是你怎么用写符号来写呢?我假设你需要使用rec.

haskell arrows

24
推荐指数
2
解决办法
3625
查看次数

标签 统计

haskell ×2

arrows ×1

fixpoint-combinators ×1

letrec ×1