我是一名新計劃/球拍學生,請原諒任何明顯的語法錯誤。Scheme:奇怪返回的三個虛線元素列表(如中綴運算符?)
它今天上課想出了這個計劃列表'(a, b, c)
應該是無效的,但是當我們運行它,它返回:
>'(a . b . c)
(b a c)
這是沒有意義的。 Afaik,口譯員應該用汽車'a和cdr'b創建一個cons cell,'c應該是無效的。也就是說,解釋者在這裏做了一些非常奇怪的事情。這適用於#lang方案,#lang球拍等。我們使用DrRacket作爲解釋器。
有趣的是,
>'(a . b . c . d)
拋出異常和死亡。
我很好奇,希望能夠理解這一點,因爲我是新手語言。谷歌是非常無益的(可能因爲搜索條件有點模糊)謝謝!
編輯: 這可能是因爲'(a . b . c)
被解釋爲b作爲中綴運算符。例如:>(4 . + . 6)
返回10.也許解釋器使用b就像操作符一樣?即(b a c)
,如(+ 4 6)
,併入。
Expermentation說:
>(define b +)
>(define a 4)
>(define c 6)
>(a . b . c)
10
所以我覺得這個問題解決了,但我還是不完全瞭解使用的「」在這種情況下運營商。我想我們已經解決了這個問題,但更多的見解將不勝感激!
操作員兩邊的小圓點讓我想起了Fortran:1.LT。 3 – JasonFruit