問題タブ [repl-printed-representation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1250 参照

scheme - スキームとラケットでのネストされた引用符の動作

Racketで関数を記述しているときに、記号の前に1つではなく2つの一重引用符を誤って入れてしまいました。つまり、誤って'' aを記述し、ネストされた引用符の動作が奇妙に見えることを発見しました。私はDrRacketを使用しており、これをRacketlangとR5RSlangの両方でテストしました。

プリント:#t。

プリント:引用

だが

両方の印刷:'a

誰かがScheme(およびRacket)で関数ペアを使用する理由を教えてもらえますか?(quote(quote a)))を2つの要素quoteとaのペアとして解釈しますが、関数writeは(quote a)の代わりに'aを出力します。

0 投票する
2 に答える
532 参照

scheme - ラケットでの引用の動作

(quote x)に評価しx、 に(quote (x y z))評価し(x y z)、に(car (quote (x y z))評価することに慣れていxます。理由は単純です。quote は引数を評価せず、そのまま返す特別な形式です。

Racket を使い始めたばかりですが、 がに評価され、 に評価され、 に評価(quote x)されると考えられます。 (quote x)(quote (x y z))(quote (x y z))(car (quote (x y z))(quote x)

実際には、これらをそれぞれ 、 、 と出力しますが、それ'x'(x y z)同じ'xことです。

誰かがここで理由を説明できますか? 何らかの理由で が と(quote (x y z))評価された場合、(quote (x y z))その車は であるべきではありませんquoteか? どこ(quote x)から来たの?

私が知る限り、Racket は、計算全体を通して、私が慣れ親しんでいるのと同じように内部的に動作しますが、最終結果を出力するときになると、それを引用形式でラップします。これはすべての場合に正しいですか?もしそうなら、なぜそれをしたいのですか?

0 投票する
2 に答える
2424 参照

functional-programming - ラケットの'(アポストロフィ)とは?

'ラケットのサインの意味がちょっとわかりません。私には、同じ記号が異なる意味を持っているように見えます。以下の 2 つの簡単な例を見てください。

list

vs を要素として含む、新しく割り当てられたリストを返します。

quote

字句情報、ソースの場所などを除いて、データ(つまり、プログラム フラグメントの表現) に対応する定数値を生成します。引用符で囲まれたペア、ベクトル、およびボックスは不変です。

だから私の質問は次のとおりです:'記号には2つの意味(記号リスト)がありますか、それとも同じデータ型でlist実際に引用符で囲まれた定数値を返しますか? 2番目の場合、なぜこれが機能するのですか:

(また(eval '(+ (- 2 13) 11)) 、動作し、正しく評価され0ます)

しかし、これはしません:

おそらく関連: Lisp/Scheme の ' (アポストロフィ) とは?

0 投票する
1 に答える
106 参照

racket - 関数によって返されるリストの結果がおかしく見えるのはなぜですか?

このコードを使用していますが、希望どおりにリストが作成されません。(evenList (list 1 2 3 4))は REPL で に評価され(cons 2 (cons 4 '()))ますが、 のようになりたいです(list 2 4)

0 投票する
1 に答える
60 参照

lisp - Lispで出現回数を数える

Lisp のリスト内のアトムの出現回数をカウントするコードを Lisp で作成しようとしています。問題は、コードが atom 以外のすべてのアトムに対して機能()することNILです。コードの例:

()ではなく表示する方法について何か考えはありNILますか?

0 投票する
3 に答える
80 参照

scheme - コンスを使用して ((a . b) . (c . d)) を実行できますか?

;;; そして、他の手段やドットペアがこのような2番目の要素を持つことができない場合は?