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 造成的問題如何解決?
你見過的最出色的程序員是怎樣的?為什麼出色?
人文社科類專業的學生有學習編程的必要嗎?

TAG:編程語言 | 編程 | C編程語言 | Scheme |