我有以下表达式:
(list '* '* '* (list '- '- '- (list '* '* '*)))
我想提取:
(list '* '* '*)
(first (list '* '* '* (list '- '- '- (list '* '* '*))))
由于某种原因不起作用。你们有任何想法如何解决这个问题吗?
编辑:好的,谢谢!现在我遇到了我的问题。
所以我的主要问题是生成一个如下所示的列表:
(define a '((* * *) (- - -) (* * *)))
我试图将莫尔斯电码分解成几个代表字母的部分。每个字母由一个间隙符号分隔。我现在的功能如下所示:
(define (break-sign los sign)
(cond
[(empty? (rest los)) (cons (first los) empty)]
[(symbol=? (first (rest los)) sign) (cons (first los) (cons (break-sign (rest (rest los)) sign) empty))]
[else (cons (first los) (break-sign (rest los) sign))]
)
)
它会生成一个这样的列表,很难分开:
(list '* '* '* (list '- '- '- (list '* '* '*)))
我确信必须有一个更简单的解决方案,它会返回一个更有用的列表。不过,我是这门语言的新手,如果有任何帮助,我将不胜感激。