方案功能

时间:2012-01-09 23:58:40

标签: string function scheme

我定义了is-string?

(define (is-string? expr)
  (string? expr))

以及interpret-string

(define (interpret-string expr env)
  expr)

这些是我写的函数:

(define (string-equals? expr)
  (and
    (list? expr)
    (= 3 (length expr))
    (equal? '= (first expr))))

(define (interpret-string expr env)
  (=
    (internet (second expr) env)
    (interpret (third expr) env)))

这是字符串的解释器:

((is-string? expr) (interpret-string expr env))

当我输入此行以检查它是否有效时:

(check-expect (is-string-equals? ’(string-equals "abc" "abc"))
              #t)

我收到错误说:

check-expect encountered the following error instead of the expected value, #t. 
   :: reference to undefined identifier: is-string-equals?

我需要为is-string-equals做些什么?我没有线索。

这是根据要求提出的实际问题。

  1. 使用“string”数据类型扩展解释器。您需要编写函数:
  2. 是字符串?
  3. 解释字符串 并修改解释函数以支持字符串数据类型。 还要添加两个函数来处理解释语言中的字符串:
  4. 字符串等号?检查两个给定的字符串是否相同。
  5. string-join返回通过连接两个字符串togeter形成的新字符串。 确保您的函数通过以下测试:

    (check-expect(is-string-equals?'(string-equals“abc”“abc”))               #T)

    (check-expect(interpret-string-equals'(string-equals“abc”“abc”)(make-env))               #T)

1 个答案:

答案 0 :(得分:2)

我知道这是怎么回事 - 这是一个PL类,你扩展了一个现有的解释器,以便它可以处理字符串和字符串比较 - 但它看起来像它会帮助你很多可以为您的函数添加目的语句,并为所有函数测试案例。从顶部开始。什么是is-string?应该做的?编写测试用例以确保它能够完成预期的工作。努力工作。

另外,对于给你测试用例的导师感到羞耻:)。

相关问题