【发布时间】:2020-01-28 13:20:13
【问题描述】:
coin :: Int -> Int -> Int -> Int -> Int
dollar :: Int -> Int -> Int -> Int -> Int
sen :: Int -> Int -> Int -> Int -> Int
coin q d n p = (q * 25) + (d * 10) + (n * 5) + (p * 1)
dollar q d n p = (coin q d n p) `div` 100
sen q d n p = (coin q d n p) `mod` 100
假设(dollar q d n p) 是6,(sen q d n p) 是27。
如何在 Haskell 中写"6 dollar and 27 sen" 输出?
我可以用 Python 做到这一点,
# [Input]
dollar = 2 * 3
sen = 3 * 9
print(dollar, " dollar and ", sen, "sen")
# [Output]
# 6 dollar and 27 sen
那么,如何在 Haskell 中写出来,输出一样呢?
【问题讨论】:
-
作为一般建议,如果你想用 X 语言编程,最好避免用 Y 语言编写代码,然后尝试将这些代码转换为 X。通常,X 和 Y 有不同的方式接近相同的任务。在 Python 和 Haskell 的情况下,这两种语言基于完全不同的范例,在它们之间进行转换通常比从头重写程序更难。例如,在 Haskell 中没有赋值,因此即使
dollar = 2*3也无法在不使用非常单一的代码的情况下轻松模拟。 -
我们不能重复使用相同的问题条目来发布完全不相关的问题,这会使现有答案无效。这违反了 Stack Overflow 的规则。