我需要一些帮助来解决 Haskell 中的问题。
我想创建一个接受三个参数的函数——第一个参数是一个表示算术运算的字符,例如'+', '-', '*', '/'
,接下来的两个参数是数字列表,并且这个函数应该返回一个数字列表,使得给定参数
'-' [3,4,7] [-4,6,6]
它会回来
[7,-2,1]
但我不知道如何开始。
另外,如何计算结果列表的最小元素?
我需要一些帮助来解决 Haskell 中的问题。
我想创建一个接受三个参数的函数——第一个参数是一个表示算术运算的字符,例如'+', '-', '*', '/'
,接下来的两个参数是数字列表,并且这个函数应该返回一个数字列表,使得给定参数
'-' [3,4,7] [-4,6,6]
它会回来
[7,-2,1]
但我不知道如何开始。
另外,如何计算结果列表的最小元素?
看看函数
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
和
minimum :: Ord a => [a] -> a
.
您应该能够使用这些构建您想要的功能。
关于什么:
f opStr x y = zipWith op x y where
op = case opStr of
'+' -> (+)
'-' -> (-)
'*' -> (*)
'/' -> (/)
甚至更短,您可以将第一行替换为;
f opStr = zipWith op where