``hello''++``world''在Haskell中不起作用

时间:2018-09-09 15:36:43

标签: haskell

只是想澄清一下这是我的第一天编程,所以我意识到这个问题是多么愚蠢:D

1)为什么不起作用?

> set l
lat=51.0
lng=-0.1

我应该在文本编辑器中添加一些东西使其工作吗?还是我只是犯了一些菜鸟错误?

2)

ghci>''hello'' ++ ''world''

<interactive>:40:1: error
    * Syntax error on ''hello''
      Perhaps you intended to use TemplateHaskell or TemplateHaskellQuotes
    * In the Template Haskell quotation ''hello''

ghci>''hello'' ++ '' '' ++ ''world''

<interactive>:41:17: error: parse error on input '''

当我用数字执行这些命令时,它可以工作,但不能用字符。我一定做错了,但是我不确定:/

谢谢!

1 个答案:

答案 0 :(得分:10)

字符串用双引号(例如"..")包围,而不是用两个单引号(例如''..'')包围。因此,您应该使用"而不是'

例如:

$ ghci
GHCi, version 8.0.2: http://www.haskell.org/ghc/  :? for help
Prelude> "hello" ++ "world"
"helloworld"
Prelude> "hello" ++ " " ++ "world"
"hello world"

这是在Haskell report 2010 section on 'Character and String Literals'中指定的:

  

字符文字写在单引号之间,如'a'字符串写在双引号之间,如"Hello"

基于this article,您可以使用 Shift + '在Mac键盘上写直双引号。在“标准”质询键盘上进行组织的方式:

  

在任何典型的键盘上,只需按'即可获得一个连续的单个标记('),然后按 Shift + '即可。直线双标记(")。

基于@M.Aroosi's comment,对于英国的通用键盘," Shift + 2