各程式語言對 巨集 的支援是怎樣的?

時間 2021-05-31 21:24:29

1樓:

我不清楚,除了C語言,現在還要巨集有什麼用?C語言用巨集,是不得已而為之,現在高階語言都物件導向程式設計了,都玩Python的人了誰還去搞什麼巨集?Go語言被稱為高階版C語言,首先就把巨集的概念乾掉了

2樓:

舉個奇怪的語言的例子,MTscript,maptool所用的指令碼語言。

MapToolDoc

所有指令碼都必須寫在巨集或事件裡。

然後這一點本身並沒有導致MTscript變得很糟糕。(雖然因為其他的原因,MTscript是個很糟糕的語言沒錯)

所以巨集本身怎麼樣,還是看需求。

3樓:Belleve

Scheme、Julia、Rust、Nim、Dylan、Nemerle 都有內建的 Hygienic Macro 支援

我在 PatEL 裡面也弄了 Hygienic Macro,是用文法閉包(Syntactic Closure)實現的,[macro-match] 會解理輸入的 form 並把每個子部分包上文法閉包。而 macro 本身則是乙個函式,你願意的話每次巨集展開時候把展開完的 ast 通過 http 上傳伺服器都行……

4樓:風清楊

恰好我剛開始看 lisp,在考慮如何用 python 寫巨集。lisp 巨集的基礎是 s表示式,巨集就是對 s表示式先轉換轉換轉換,再對轉換之後的 s表示式求值。類似的過程在 python 裡,可以以函式代替 s表示式,轉換轉換轉換,再執行轉換完畢的函式。

說裝飾器有點狹義了,實際可以用任何輸入函式再輸出函式的工具。

各語言對linux系統API上的支援(c c 除外)?

依雲 當我想測試一下某個系統呼叫的時候,我通常會用 Python 3。除了特別新的,特別少使用的 aio bpf 之外,其它的都有,而且通常直接看該系統呼叫的文件就好了。實在不行還有 ffi 這條途徑 自帶 ctypes 增強 cffi 庫 管道 套接字 訊號什麼的都自帶了。程序表的話,可以用 ps...

各語言的 你好 是怎樣的含義

希臘吳小姐 希臘語中你好 原意你的健康,見面打招呼,相當於 你好 離開的時候也可以說,相當於 再見 原意我們的健康,希臘人乾杯的時候會說,相當於 為了我們的健康乾杯吧 這樣看來,是不是希臘語最簡單 巴圖道爾吉 神奇寶貝世界阿羅拉地區 地方 的 你好 就是地區的名字Alola 據說和地區名一樣,是來自...

不同的程式語言對程式設計師的思維塑造有區別嗎,區別大不大?

司馬非 做了乙個按Map形式讀寫物件和注入的庫 不用反射 一直在費盡腦汁想做編譯期型別強校驗。做PHP的同學表示,型別是什麼 校驗有啥用 青年小凱 用多個語言編寫過大大小小的程式之後,對語言的理解就回歸到了最根本的東西 程式語言作為工具,都是為了讓程式設計師在特定問題的實現上,編寫程式更方便和自然。...