当我注意到Elm不支持列表推导时,我试图在 Elm 中模拟魔方。在 Haskell 甚至 Python 中,我会写如下内容:
ghci> [2*c | c <- [1,2,3,4]]
[2,4,6,8]
我在榆树找不到路。我必须编写的实际列表理解是(在 Haskell 中):
ghci> let x = [0,1,3,2]
ghci> let y = [2,3,1,0]
ghci> [y !! fromIntegral c | c <- x]
[2,3,0,1]
fromIntegral :: (Integral a, Num b) => a -> b
变成. _ Integer
_Num
在 Elm 中,我尝试使用数组:
x = Array.fromList [0,1,3,2]
y = Array.fromList [2,3,1,0]
Array.get (Array.get 2 x) y
我开始在Maybe
类型方面遇到困难:
Expected Type: Maybe number
Actual Type: Int
事实上,我必须查一下它们是什么。我没有解决可能的问题,而是对列表做了一些事情:
x = [0,1,3,2]
y = [2,3,1,0]
f n = head ( drop n x)
map f y
我不知道这是否有效或正确,但它在我尝试的情况下有效。
我想我的两个主要问题是:
- Elm 支持列表推导吗?(我想只是使用
map
) - 如何绕过
maybe
数组示例中的类型? - 调用
head ( drop n x)
获取列表的第 n 个元素是否有效?