Parsing 在racket中编写解析器时出现类型检查器问题

Parsing 在racket中编写解析器时出现类型检查器问题,parsing,racket,typed-racket,Parsing,Racket,Typed Racket,我有一个语言规划,支持评估 点(数)序列上的多项式。 这种语言允许表达 形式{第一个问题是由一对额外的括号引起的。请记住,在Racket、键入的Racket和#lang pl中,括号通常表示这样的函数应用程序: (function argument ...) 因此,当您编写(code)时,它试图将code解释为一个函数,以零参数调用它 您可以通过在parse函数体中将(code)替换为code来解决此问题 (define (parse str) (let ([code (string-&g

我有一个语言规划,支持评估 点(数)序列上的多项式。 这种语言允许表达
形式{第一个问题是由一对额外的括号引起的。请记住,在Racket、键入的Racket和
#lang pl
中,括号通常表示这样的函数应用程序:

(function argument ...)
因此,当您编写
(code)
时,它试图将
code
解释为一个函数,以零参数调用它

您可以通过在
parse
函数体中将
(code)
替换为
code
来解决此问题

(define (parse str)
  (let ([code (string->sexpr str)])
    (parse-sexpr code)))
出现第二个问题是因为指定了
parse
函数应返回
PLANG
,但它会返回
parse sexpr
的结果,该结果返回
AE


另一种说法是,您已经为
AE
s而不是
PLANG
s实现了解析。

第一个问题是由一对额外的括号引起的。请记住,在Racket、键入的Racket和
#lang pl
中,括号通常表示如下函数应用:

(function argument ...)
因此,当您编写
(code)
时,它试图将
code
解释为一个函数,以零参数调用它

您可以通过在
parse
函数体中将
(code)
替换为
code
来解决此问题

(define (parse str)
  (let ([code (string->sexpr str)])
    (parse-sexpr code)))
出现第二个问题是因为指定了
parse
函数应返回
PLANG
,但它会返回
parse sexpr
的结果,该结果返回
AE


另一种说法是,您已经为
AE
s实现了解析,但没有为
PLANG
s实现解析。

您使用的是
#lang typed/racket
,还是类似于它的语言,例如
#lang pl
#lang plai typed
?@AlexKnauth我正在使用的是#lang plAre您使用的是
#lang typed/racket>还是一种语言例如
#lang pl
#lang plai键入的
?@AlexKnauth我正在使用#lang plSo我应该添加另一个解析实现来将AE转换为PLANG?那么我应该添加另一个解析实现来将AE转换为PLANG?