Haskell:如何为函数提供的参数太少而抛出错误?

时间:2017-10-14 15:48:08

标签: haskell

一个新手问题。当向函数提供的参数太少时,我想抛出一个优雅的错误。你可以看到,我想修改下面注释掉的部分。感谢

showListConditional :: (Integral a) => a -> [a] -> [a]

--showListConditional undefined y = error "Please specify number of transformation steps as the first argument, before the list!"

showListConditional z y = map head (filter isLong (map chain y))
        where isLong q = fromIntegral (length q) > z

1 个答案:

答案 0 :(得分:0)

正如评论者所说,这在Haskell中并没有真正完成(因为部分应用程序很有用!)但如果我不希望用'不足'参数调用函数,我会将参数设为元组。为简单起见,假设我想创建一个添加三个数字的函数

addThree :: (Int, Int, Int) -> Int
addThree (a, b, c) = a + b + c

如果我尝试用少于3个参数调用 addThree ,编译器会给我一个错误。