【问题标题】:Printing Lists in Haskell new在 Haskell 中打印列表 new
【发布时间】:2019-03-29 04:30:06
【问题描述】:

haskell 的新手,我需要为每个单独的项目打印出单独一行中包含的数据

不知道怎么做

type ItemDescr = String
type ItemYear = Int
type ItemPrice = Int
type ItemSold = Int
type ItemSales = Int
type Item = (ItemRegion,ItemDescr,ItemYear,ItemPrice,ItemSold,ItemSales)
type ListItems = [Item]

rownumber x
 | x == 1  = ("Scotland","Desktop",2017,900,25,22500)
 | x == 2  = ("England","Laptop",2017,1100,75,82500)
 | x == 3  = ("Wales","Printer",2017,120,15,1800)
 | x == 4  = ("England","Printer",2017,120,60,7200)
 | x == 5  = ("England","Desktop",2017,900,50,45000)
 | x == 6  = ("Wales","Desktop",2017,900,20,18000)
 | x == 7  = ("Scotland","Printer",2017,25,25,3000)

showall
--print??

例如在每一行 显示

"苏格兰","桌面",2017,900,25,22500

接下来是下一条记录

【问题讨论】:

  • 似乎是一个家庭作业问题,在 24 小时内有人问了一个类似代码风格的问题。 stackoverflow.com/questions/55402519/…
  • @Elmex80s 这绝对与家庭作业有关,但它不是重复的,它询问的是不同的事情。与家庭作业相关的问题本身并没有被 SO 禁止。
  • 对于提问者:到目前为止,您尝试了什么?你知道如何打印其他东西吗?

标签: list haskell printing


【解决方案1】:

提示 1:

这样存储数据

items = [("Scotland","Desktop",2017,900,25,22500),
         ("England","Laptop",2017,1100,75,82500),
         ("Wales","Printer",2017,120,15,1800),
         ("England","Printer",2017,120,60,7200),
         ("England","Desktop",2017,900,50,45000),
         ("Wales","Desktop",2017,900,20,18000),
         ("Scotland","Printer",2017,25,25,3000)]

提示 2:

实现这个功能

toString :: Item -> String
toString = undefined -- do this yourselves

提示 3:

尝试结合以下功能

  • unlines,已经在前奏中了
  • toString,你刚刚写的
  • map,不需要解释
  • putStrLn,甚至不确定这是否是一个真正的功能,但无论如何你都需要它。
  • ($),你可以不用这个,但它会给你加分

【讨论】:

    猜你喜欢
    • 2011-08-22
    • 2015-08-03
    • 2020-02-26
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多