我需要一个将bin转换为dec
的算法我在互联网上找到了以下代码,但我不知道,有些变量是什么意思:
bin2dec :: [Int] -> Int
bin2dec n = foldl (\a x->2*a+x) 0 n
我已经知道了foldl 但是什么意思(\ a x-> 2 * a + x)0 n 我不知道是什么\ a x - > 2 * a + x表示也是“0 n”
有人可以解释一下这个功能是如何运作的吗?
由于
答案 0 :(得分:0)
foldl ::(a - > b - > a) - > a - > [b] - >一个 所以基本上a是0,然后是整个折叠的值。 n是您传递给bin2dec的列表,0是您开始折叠的对象。
\ a x - > 2 * a + x是lamda函数。它需要两个变量a和x,并返回箭头右侧给出的值。