【问题标题】:Defining lists in Haskell在 Haskell 中定义列表
【发布时间】:2014-03-17 13:16:59
【问题描述】:

我想知道如何在 Haskell 中将其定义为一个列表,以便我可以执行尾部、反向和长度等操作:

cars = "lamborghinis are my favourite types of car"

我试过了:

let cars = [lamborghinis,are,my,favourite,types,of,car]
let cars = ["lamborghinis","are","my","favourite","types","of","car"]
let cars = ['lamborghinis','are','my','favourite','types','of','car']

我一直使用http://learnyouahaskell.com/starting-out 作为教程,因为我是 Haskell 的新手,我看不出哪里出错了,我认为我上面的第一次尝试是正确的,因为它是如何在教程,但用数字而不是单词。

我得到的错误是:parse error on input 'of

任何想法我哪里出错了?谢谢。

【问题讨论】:

  • 字符串已经是列表,即字符串是 [Char] 的类型同义词。例如,"hello" 和 ['h','e','l','l','o'] 是相同的东西。你到底想做什么?
  • 现在可以使用了,感谢您的回复 :)

标签: list haskell


【解决方案1】:
let cars = "lamborghinis are my favourite types of car"

让汽车成为一个字符列表,[Char]==Stringhead cars 应该给你第一个字母。这是 haskell 字符串的特殊语法

let cars2 = ["lamborghinis","are","my","favourite","types","of","car"]

这是定义列表的常规形式,它给你一个字符串列表[String]head cars 应该给你"lamborghinis"。 您还可以使用 words 函数将句子拆分为单词。

let cars3 = words cars

【讨论】:

    【解决方案2】:

    String 类型只是[Char]类型同义词

    这意味着例如"Hello, you"['H','e','l','l','o',',',' ','y','o','u']相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多