代码之家  ›  专栏  ›  技术社区  ›  Stav Alfi

返回一对-语法错误

  •  1
  • Stav Alfi  · 技术社区  · 7 年前

    我正在使用 pl 球拍内: https://pl.barzilay.org/ 可在此处找到下载: http://pl.barzilay.org/pl.plt

    ( : f1 : -> (Pairof Symbol String))
    (define (f1)
      (cons 'wwww "aaa"))
    

    错误:

       Type Checker: Polymorphic function `cons' could not be applied to arguments:
    Argument 1:
      Expected: a
      Given:    'wwww
    Argument 2:
      Expected: (Listof a)
      Given:    String
    
    Result type:     (Listof a)
    Expected result: (Pairof Symbol String)
     in: (cons (quote wwww) "aaa")
    

    我做错了什么,我该如何纠正?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Eli Barzilay    7 年前

    这个 #lang pl 我在课堂上使用的语言是类型化语言的变体 球拍其中一个变化是 cons 有更严格的限制 类型(如您所见),它只允许构造 正确的列表

    (作为旁注,没有正式文件的原因是 语言是用来在课堂上使用的,因此 这取决于随机的教学需要,而不是作为一种东西 用于随机球拍代码。。。所以我的课堂笔记是主要的 “记录”语言。)