Haskell任务 - 解决方案是什么

时间:2013-07-13 11:16:16

标签: haskell

我需要一些Haskell问题的帮助。

我想创建一个带三个参数的函数 - 第一个参数是一个表示算术运算的字符,如'+', '-', '*', '/',后两个参数列出数字,这个函数应返回一个给定参数的数字列表

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

它将返回

[7,-2,1]

但我不知道如何开始。

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

2 个答案:

答案 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