0
我正在使用DrRacket,並且我有一個字符串列表。一個可能的輸入可能是'(「+」「100」「22」)。如何讓這些列表函數正確執行?我的例子的答案是122.我可以做到這一點,如果我可以刪除輸入必須是字符串列表的事實。 那麼,如何將字符串列表更改爲符號列表?字符串列表中的球拍公式
我正在使用DrRacket,並且我有一個字符串列表。一個可能的輸入可能是'(「+」「100」「22」)。如何讓這些列表函數正確執行?我的例子的答案是122.我可以做到這一點,如果我可以刪除輸入必須是字符串列表的事實。 那麼,如何將字符串列表更改爲符號列表?字符串列表中的球拍公式
你需要做類似的東西:
#lang racket
(define (evaluate expr)
(define r evaluate)
(match expr
[(and (? string?) (app string->number n))
n]
[(list "+" e1 e2) (+ (r e1) (r e2))]
[(list "-" e1 e2) (- (r e1) (r e2))]
[(list "*" e1 e2) (* (r e1) (r e2))]
[(list "/" e1 e2) (/ (r e1) (r e2))]
[_
(error 'evaluate "got ~a" expr)]))
(evaluate '("+" "1" "2"))
(evaluate '("+" ("-" "5" "4") "2"))
您可以使用map
函數將字符串列表轉換爲符號列表。
例如:
(define los '("+" "100" "22))
(map string->symbol los)
有永遠只能一人操作? (即+, - ,*或/)。如果是這樣,操作員是否始終是列表中的第一個字符串? – RogueBaneling 2014-12-03 16:32:18