Scheme語言的優勢?
和C、Java相比,Scheme語言的優勢在哪?scheme語言在什麼領域應用較廣,是不是不可替代?
C最新標準文檔ISO/IEC 9899:201x N1570(C11草案,正式版手頭沒有),全文701頁。
C++最新標準文檔ISO/IEC 14882.2011(C++11),全文1356頁。Java最新標準文檔The Java Language Specification Java SE 8 Edition(Java 8),全文780頁。JVM標準文檔另算。
Common Lisp最新標準文檔ANSI INC/TS 226-I994,全文1153頁。Scheme最新標準文檔Revised 7 Report on the Algorithmic Language Scheme(R7RS-small),全文88頁。
Scheme是目前唯一我能通讀標準文檔當教材用的語言(啥?你說rust?等出了ISO rust標準我們再討論)。讀一門語言的標準文檔是件巨蛋疼的事情,因為寫標準跟寫教材不是一個套路,不會考慮認知規律循序漸進,而是直接把所有syntax和semantics的細節事無巨細地羅列。但能通讀的話,效果是任何教材都無可替代的。所以我想這算一個優勢吧。Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.
=====翻譯=====
程序設計語言的設計,不應該是功能的堆砌,而應消除弱點和限制,使剩下的功能顯得必要。Scheme語言展示了,只需要少量的表達式構造規則,並且不限制它們的組合方式,就可以塑造出一種高效、實用的程序設計語言,其靈活性足以支持當今大部分的主要編程範式。
==========
用Scheme寫一個最簡單基本的Scheme實現(解釋器),一頁代碼足以。
KFFD。C、Java、JavaScript、Erlang、Go、ML、Haskell 都沒有的,能讓 Scheme 傲視群雄的功能。
別的什麼語言都很難讓你幾天之內寫一個自解釋的解釋器出來(還可以順便實現一些高級特性),對於理解語言的本質以及編程和數學關係非常有幫助,作為教學語言,有不能替代的作用。
『我擦 居然和Python一樣不用考慮高精度 除不盡直接幫我約分好了『
剛學第一天的時候就是這樣想的
沒有什麼語言是不可替代的,
號稱擁有某些特性的語言幾乎一定能找到類似的競品。
但是某種語言確實能在某個方面做到最好——寫起來最爽。
我感覺scheme的 list+宏 是它最爽的特點。
初學一點就覺著用起來很順手,多學一點還不逆天了啊。(然而並不能學會。。。)
YouTube 搜索 Matthew Flatt 有真相。
思想優勢。
是高級的語言中最簡單的。也是簡單的語言中最高級的。
推薦閱讀:
※新入職的軟體開發公司,看不懂代碼怎麼辦?
※Python 中循環 import 造成的問題如何解決?
※你見過的最出色的程序員是怎樣的?為什麼出色?
※人文社科類專業的學生有學習編程的必要嗎?