我需要一些Haskell问题的帮助。
我想创建一个带三个参数的函数 - 第一个参数是一个表示算术运算的字符,如'+', '-', '*', '/'
,后两个参数列出数字,这个函数应返回一个给定参数的数字列表
'-' [3,4,7] [-4,6,6]
它将返回
[7,-2,1]
但我不知道如何开始。
另外,如何计算结果列表的最小元素?
答案 0 :(得分:10)
看一下功能
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
和
minimum :: Ord a => [a] -> a
。
您应该可以使用这些功能构建所需的功能。
答案 1 :(得分:2)
怎么样:
f opStr x y = zipWith op x y where
op = case opStr of
'+' -> (+)
'-' -> (-)
'*' -> (*)
'/' -> (/)
甚至更短,你可以用;替换第一行;
f opStr = zipWith op where