We don't want the existence of a macro system to be a workaround that reduces the incentive for making the core lan
去看一下lisp的基礎知識就理解他說什麼了在函式程式設計的世界裡,運算子就是一切
C/C++中的宏本來就是文字替換,至於你想替換出什麼效果,完全取決於你用什麼去替換你可以看看boost的原始碼,宏一樣可以用的很複雜這是歷史遺留吧, 要想讓你爽C++就是別的東西了
至於比較高階點的語言麼,,,最好是從Lisp學起,,,雖然很多人認為Lisp已經過時,而且學了也用不著, 但是我感覺,做到這些好比練會了語言武俠世界裡面的九陰真經,九陽神功那些牛b的內功,在擁有了一個渾厚的武學基礎,領悟別的比如C,C++,
也別聽別人說這個語言好那個語言好,聽這些沒有意義,一旦確定下來就走下去,並堅持,沒有錯其實學這東西就是一個較真兒的過程,不管哪種語言,保持個刨根問底兒的精神還是有些必要的,之後再學習其他語言時會越來越輕車熟路
我們將會學到什麼什麼是解析器(parser),如何寫出一個如何寫一個直譯器(interpreter)為什麼Continuations很重要寫一個編譯器(Compiler)如何把程式碼轉化成CPS型別(continuation-passing
隨著時間流逝,流行的程式語言不斷更新換代,語言設計思想逐漸向Lisp靠攏
HELLO-WORLD
大致提綱(在學習的過程中會不斷調整):1) 開始:餐前甜點(已完成)2) Racket語言概要:基本語法和資料結構(正在撰寫)3) 寫點有意義的程式碼:用Racket解決一些實際問題4) Racket語言進階:Racket的程式設計思想,函
執行這段程式碼的過程是這樣的:直譯器從程式碼的第一行開始執行,碰到了一個“程式碼字串”,於是將這個字串當作程式碼進行解釋,解釋完後,執行print函式的呼叫,將帶s的“普通字串”作為print的引數,最終,透過print函式在終端上輸出了H
HELLO-WORLD
要天天說宏沒有必要,宏容易引起混亂,宏連幫你少打字的作用都沒有,宏是給初學者用的,比如的common lisp著名的loop就是給不會寫迴圈的新手用的