有没有办法在Haskell中为多个变量分配相同的值? 例如:
h,f = 5
答案 0 :(得分:4)
没有。而且没有理由这样做。因为变量在haskell中是不可变的,所以一旦某个值绑定到某个变量,它就不会在范围内发生变化。所以,h, f = 5
在haskell中没有意义。只需使用h
,其中5是预期的;没有f
答案 1 :(得分:4)
Prelude> let [x, y] = replicate 2 5
Prelude> x
5
Prelude> y
5
Prelude>
您需要replicate
至"重复"一个值。在这种情况下,我复制5次两次。 [x, y]
表示从列表中获取x
和y
。该列表为[5, 5]
。所以,你得到x = 5
和y = 5
。
好吧,我从来没有在现实世界的Haskell中做过这样的行为,但是你得到了你想要的东西。
编辑:我们可以在Haskell中使用repeat
函数和延迟评估功能。感谢luqui。
Prelude> let x:y:_ = repeat 5
Prelude> x
5
Prelude> y
5
Prelude>