我是一名新計劃/球拍學生,請原諒任何明顯的語法錯誤。 它今天上課想出了這個計劃列表'(a, b, c)應該是無效的,但是當我們運行它,它返回: >'(a . b . c)
(b a c)
這是沒有意義的。 Afaik,口譯員應該用汽車'a和cdr'b創建一個cons cell,'c應該是無效的。也就是說,解釋者在這裏做了一些非常奇怪的事情。這適用於#lang方案,#lang球拍等。我們使用D
有誰知道爲什麼下面的代碼不能識別∙作爲有效的中綴運算符? object Main extends App {
val c = (I() ∙ I())
}
sealed abstract class Term
case class I() extends Term
case class ∙(x: Term, y: Term) extends Term
讓f x y = x * y。我們可以通過兩種方式應用此功能:f 5 6或使用中綴表示法,5 `f` 6。操作員規則是否適用於最後一個表達式?這個應用程序有什麼優先權?它只是函數應用的另一種形式,它也會具有最高的優先級嗎? 我想編譯器會看到這種特殊的形式(由於``和/或名稱以字母(?)開頭),並且實際上將其視爲普通函數應用程序,而不是將其視爲運算符。
public class Convert{
/* the algorithm works as follows after inserting all elements of infix string
into an empty Queue iterate over queue for infix.length() number of times and
check if element a