有人能帮我理解一下Wadler教授最初的论文“函数式编程单子”(Haskell)中的地图定义吗?map :: (a → b) →(M a →M b) 我理解为什么它被声明为从f::a -> b到g::Ma -> Mb的一个态射。为什么它被混淆地定义为似乎取2 args,f和m是一个计算(带有副作用的函数),我假设它可
我正在努力学习的液体Haskell。为了测试我的理解,我想编写一个函数log2,它接受表单2^n的输入并输出n。任何帮助都会很感激的。
谓词要么是通过比较两个表达式获得的原子谓词,要么是谓词函数的应用程序与参数列表.在液体Haskell逻辑语法中,允许的谓词之一是:e r e,其中r是一个原子二进制关系(而<em
我正试着熟悉Haskell,我想知道下面的内容是否可行,如果是的话,怎么做?
假设我有一组函数{f,g,..},我要为它定义一个替换函数{f',g',..}。现在假设我有一个函数c,它在其内部使用这些函数(只使用这些函数),例如c x = g (f x)。是否有一种不显式定义c' x = g' (f' x)而自动定义它的方法?编辑:我所说的替换函数f'是指在概念上与<