10

Stack Overflow(およびWeb上の他の場所でも、SchemeとRacketが同じものであるかのように振る舞うことがよくあります。たとえば、Schemeに関する質問は、Racketでソリューションを生成することがよくあります。schemeとタグ付けされた質問を見てください、回答の半分が。で始まることがわかります#lang racket

これらの2つの言語は本当に非常に似ているので、等しいと見なすことができますか?RacketはSchemeの単なる拡張ですか(つまり、Schemeコードは常にRacketインタープリターで実行されます)?

これは論争ではなく、Schemeプログラミング言語を勉強している人からの質問であるという事実を強調したいと思います。

4

2 に答える 2

14

ラケットはSchemeに非常に近く、実際には2年前まではPLTSchemeと呼ばれていました。

ただし、Racketで使用されるデフォルトの言語は、いくつかの場所でSchemeとは異なります(特に、不変のペアがあります)。これは新しいことではありません。PLTスキームと呼ばれたときも同様の違いがありました。また、これはRacketに固有のものではありません。Scheme標準は非常にミニマルであるため、定義する言語は実用的ではありません。つまり、すべてのScheme実装が独自の拡張機能を追加します。ラケットの場合のもう1つの重要な点は、新しい方言の定義が非常に簡単であるということです。ラケットは厳密なR5RS方言を実装し(厳密であるという事実はあまり役に立たないことを意味します)、R6RS方言も実装します。

于 2012-04-28T11:45:40.077 に答える
6

いいえ、等しくありません。ただし、Racket実装は標準のSchemeコードを実行できます。スキームは標準によって定義されています。ラケットはそうではありません。移植性が必要な場合は、R6RSコードを記述し、Racketを使用して実行できます。

ラケットはSchemeのスーパーセットまたはサブセットではありません。

于 2012-04-28T11:35:02.290 に答える