相关疑难解决方法(0)

如何在Haskell中实现列表推导?

  • 列表推导只是一种语言特征吗?
  • 使用纯Haskell伪造列表理解的最简单方法是什么?
  • 您是否必须使用do block/>>=来执行此操作,还是可以使用其他方法将列表理解混合在一起?

澄清:通过"假"列表理解我的意思是创建一个函数,它接受相同的输入并产生相同的输入,即返回值的表单,压缩在一起的列表,以及谓词或多个谓词.

monads haskell ghc

6
推荐指数
2
解决办法
591
查看次数

为什么`guard`基于`Alternative`?

为什么guard基于Alternative

guard :: Alternative f => Bool -> f ()
-- guard b is pure () if b is True,
-- and empty if b is False.
Run Code Online (Sandbox Code Playgroud)

我问因为guard只使用了empty来自Alternative.它不使用<|>Alternative根本.那么为什么要Alternative首先使用呢?

我想这是因为背后有一些不成文的想法Alternativeempty,与我们正在努力与实现的目标完全吻合guard(停止False,继续True).如果是这种情况,请告诉我这个没有说明的想法.

但与此同时,如果觉得我们只是在忽视<|>.感觉好像guard不是"完全捕捉"到底Alternative是什么.我希望这是有道理的.为了使它更具体:为什么他们不发明另一个类似Stoppable(或Abortable)之类的类型并使用它而不是Alternative

haskell

6
推荐指数
1
解决办法
309
查看次数

标签 统计

haskell ×2

ghc ×1

monads ×1