将其转换为表达式

时间:2015-03-05 18:16:06

标签: scheme

enter image description here

大家好我想知道我的照片是否正确,如果不是为什么请

(a((f(b c))(g h))e)

2 个答案:

答案 0 :(得分:3)

你关闭了,但不太对劲。如果我们使用cons显式构建列表结构,那就更清楚了。这更像是:

(cons 'a
      (cons (cons (cons 'f 
                        (cons 'b 'c))
                  (cons 'g
                        (cons 'h '())))
            (cons 'e '())))

=> '(a ((f b . c) g h) e)

请注意,在此部分中:(f b . c)我们有一个不当列表,因为子列表不会以null结尾。

答案 1 :(得分:2)

您的回答不正确,因为它没有正确表达不正确的列表(f b . c)。 <{1}}周围的括号也是错误。

使用点对,完整表达式为:

g h

请注意,'(a ((f b . c) g h) e) '(f b . c)不同。

看到'(f (b c))是:

'(f (b c))

而不是(cons 'f (cons (cons 'b (cons 'c '())) '()))

'(f b . c)

请注意不正确的清单。