0

我需要一些帮助来解决 Haskell 中的问题。

我想创建一个接受三个参数的函数——第一个参数是一个表示算术运算的字符,例如'+', '-', '*', '/',接下来的两个参数是数字列表,并且这个函数应该返回一个数字列表,使得给定参数

'-' [3,4,7] [-4,6,6]

它会回来

[7,-2,1]

但我不知道如何开始。

另外,如何计算结果列表的最小元素?

4

2 回答 2

10

看看函数

zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]

minimum :: Ord a => [a] -> a.

您应该能够使用这些构建您想要的功能。

于 2013-07-13T15:01:32.163 回答
2

关于什么:

f opStr x y = zipWith op x y where
    op = case opStr of
        '+' -> (+)
        '-' -> (-)
        '*' -> (*)
        '/' -> (/)

甚至更短,您可以将第一行替换为;

f opStr = zipWith op where
于 2013-07-15T20:35:07.147 回答