小编Jef*_*rka的帖子

Haskell rec关键字如何工作?

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

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

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

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

haskell arrows

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

了解功能类型

我在尝试理解Haskell如何确定函数类型时感到有些困惑.这是一个例子:

boolFcn x y = x/=3 && y/=4
Run Code Online (Sandbox Code Playgroud)

当我检查上述函数的类型时,它给出了我的结果:

(Num a1, Num a, Eq a1, Eq a) => a -> a1 -> Bool
Run Code Online (Sandbox Code Playgroud)

这是另一个例子:

triangles = [ (a,b,c) | c <- [1..10], b <- [1..10], a <- [1..10] ]   
Run Code Online (Sandbox Code Playgroud)

而apllying :ttriangles与结果:

(Num t2, Num t1, Num t, Enum t2, Enum t1, Enum t) =>  [(t, t1, t2)]
Run Code Online (Sandbox Code Playgroud)

我头脑中出现了一些问题,我自己解决这些问题非常困难:

  1. 为什么boolFcn的类型由a, a1文字组成,而三角形的类型由t,t1文字组成?有什么区别at
  2. 为什么boolFcn的类型不能简化为:

    (Num a, Eq a) => a -> a …

haskell functional-programming

4
推荐指数
1
解决办法
128
查看次数

排序Text值的最有效方法是什么?

如果我有一个Data.Text我想要排序的值,我应该将它解压缩到一个String并使用sort或其他功能吗?当cons和append都是O(n)时,似乎很难为Text值编写快速排序函数.

sorting haskell

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

标签 统计

haskell ×3

arrows ×1

functional-programming ×1

sorting ×1