【问题标题】:Haskell, tuple (double, string) [closed]Haskell,元组(双,字符串)[关闭]
【发布时间】:2018-12-07 22:52:07
【问题描述】:

我需要一点帮助。

输入:(双精度,字符串)元组

输出: - 在新行中,字符串 + ":" + " " + 实数增加 15%,在新行“完成”的末尾

例子:

myPutStr [(210.0,"Converse"),(315.0,"Crocs"),(250.0,"Lacoste"),(275.5,"Under Armour")]

输出:

匡威:241.0

鳄鱼:362.0

鳄鱼:287.0

安德玛:316.825

完成

【问题讨论】:

  • 您究竟需要什么帮助?您的预期输出与示例不同。到目前为止,您是否有可以分享的代码?
  • 输出对于我之前写的实际示例是正确的。我有一个元组(双精度,字符串),我必须按以下顺序在新行中写出答案:(字符串:双精度(值)+15%)

标签: haskell tuples


【解决方案1】:

您可以使用mapM_/traverse_ 或翻转参数版本来实现它:forM_/for_。我更喜欢for_,因为它看起来更像是 Java 等语言的“增强型 for 循环”。

import Data.Foldable (for_)

myPutStr :: [(Double,String)] -> IO ()
myPutStr vals = do
    for_ vals $ \(num, str) -> do
        putStr str
        putStr ": "
        print (num * 1.15) -- increase num by 15%
    putStrLn "Done"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多