【问题标题】:Insert a list of user inputs into a list of lists in haskell将用户输入列表插入到 haskell 中的列表列表中
【发布时间】:2016-05-07 04:32:23
【问题描述】:

我正在尝试在 haskell 中创建一个学生记录系统,其中我必须接受用户输入的姓名、生日月份和生日日期,然后执行搜索删除等操作。所以我想到了创建列表列表。每个列表里面都有一个列表,其中包含每个人的记录。但我无法编码。

代码如下:

type data = [String,Int,Int]
insert :: (eq a) -> [a] -> [[a]]
  print "Enter the name"
  name <- getLine
  print "Enter the month"
  month <- getLine
  print "Enter the date"
  date <- getLine
  insert [] = [data]
    where 
      data = date:data
      data = month: data
      data = name : data

我不知道在此之后如何进行。请帮帮我。

【问题讨论】:

    标签: list haskell


    【解决方案1】:

    这段代码有很多问题

    1. printgetLine 需要 IO monad。
    2. data 是保留关键字,不能用作变量名。您还定义了 data 的值 3 次。
    3. insert 有类型,但没有定义。
    4. 没有main
    5. 我认为您的意思是使用 Eq a=&gt;,而不是 (eq a).... 但我不确定。

    【讨论】:

    • 你忘了:6) print... 都在顶层,不在 insert 的定义中; 7) insert 只为空列表定义; 8) 类型名称必须以大写字母开头(与数据问题相关联); 9) 一个列表不能包含几种不同的类型,这是针对元组的;
    • 我已经在顶部声明了 IO monad。只是没有包括那个。我纠正了数据关键字的使用。是的,我必须使用 Eq => a 并且 main 也被定义在某个地方,比如在 switch case 中,所以控制返回到那个地方。
    • 你能告诉我或参考一个示例代码吗?如何进行这样的操作?感谢您的回答。
    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多