小编sea*_*ear的帖子

Haskell函数组合(正向管道) - 为什么这样做?

在下面的代码中,fibseq表示来自Fibonacci序列的数字序列.(从代码中解决Project Euler#2)

我已经定义了一个中缀函数|>:

(|>) x y = y x.
Run Code Online (Sandbox Code Playgroud)

这让我可以执行以下操作(如unix管道):

take 34 fibseq |> filter even |> filter (< 4000000) |> sum
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么这有效?

我本以为 take 34 fibseq |> filter even应该转换成filter (take 34 fibseq) even,(我认为)会导致类型错误.

相反,它似乎正在转变为filter even (take 34 fibseq)哪些作品并且是我想要的,但我不明白它为什么会起作用.

haskell

20
推荐指数
2
解决办法
4158
查看次数

围绕类型名称的括号

我喜欢将类型名称与Go中的变量进行一些视觉分离.我一直在玩以下内容:

var target (int64) = 600851475143
var largest (int64) = 0
var i (int64)
Run Code Online (Sandbox Code Playgroud)

到目前为止,它编译正确,我没有看到我的程序运行结果有任何差异.

这有危险吗?上面和下面之间是否有语义差异?

var target int64 = 600851475143
var largest int64 = 0
var i int64
Run Code Online (Sandbox Code Playgroud)

谢谢

go

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

标签 统计

go ×1

haskell ×1