一个新手问题。当向函数提供的参数太少时,我想抛出一个优雅的错误。你可以看到,我想修改下面注释掉的部分。感谢
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
答案 0 :(得分:0)
正如评论者所说,这在Haskell中并没有真正完成(因为部分应用程序很有用!)但如果我不希望用'不足'参数调用函数,我会将参数设为元组。为简单起见,假设我想创建一个添加三个数字的函数
addThree :: (Int, Int, Int) -> Int
addThree (a, b, c) = a + b + c
如果我尝试用少于3个参数调用 addThree ,编译器会给我一个错误。