問題タブ [s-expression]
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.
clojure - 一般的な Lisp リーダー マクロには、Clojure にはない利点はありますか?
私は最近 Clojure をよく使っていますが、一般的な Lisp リーダー マクロが提供しない機能をまだ理解していません。これを簡単な言葉で説明できますか?
c++ - S-Expression の解析を助ける
を読み込む簡単な描画プログラムを作成しようとしていますtranslate (rect 10 10 10 10) 50 50
。私がやろうとしているのは、50 50
が と一緒にtranslate
なり、rect
がすべての10
s を保持するように分割することです。
これは PostScript 塗りつぶしです。ハッシュ テーブルとスタックについて聞いたことがありますが、それらの使用方法がわかりません。私は他のすべてを行いました(形状のすべての計算など)。正しい変数を指す数値を取得できるように、行を解析する方法がわかりません。
haskell - Haskellはラケットの試合のようにS-Expressionで試合できますか?
私は3日前にHaskellを学び始めたばかりで、Haskellのカスタムセマンティクスのインタプリタを目指していました。私はインタープリターのRacket実装を持っていますが、Racketmatch
のS-Expressionでのマッチングは非常に便利です。Haskellに関して言えば、似たようなものが存在するかどうかはよくわかりません。または、いくつかのデータ型を記述し、定義されたデータ型に対してS式を解析してから、Haskellでいくつかのマッチングメカニズムを使用する必要がありますか?
(ラケットで)一致させたいもの。たとえば、次のような入力(ファイルまたはスタンド入力から)がある(lambda (v1 v2) (+ v1 v2))
場合、ラケットでは、次のようなパターンを記述できます
(lambda (,v ...) ,body)
。後でやりたいことをします。Haskellで、私は同じようなことをすることができますか?
ruby - Rubyコードを解析するためのNokogiriに似たものはありますか?
のこぎりはすごいです。#css('.bla')
最初に一致する要素を返すようなことを行うことができます。
今のところ、Rubyソースコードの解析を行う必要があります。クラス内のすべてのメソッドを見つけるなどです。ruby_parsergemを使用していますが、ソースコードを組み合わせてS式を吐き出すだけです。「'foo'という名前の最初のメソッドのS式を返す」などのことができるこれらのS式のノコギリのようなものはありますか?
clojure - clojure read/read-string 関数を使用して、.clj ファイルをオブジェクトのリストに読み込む方法
タイトル通り、もし私が
これは、ファイル内の最初のオブジェクトのみを提供します。つまり、「somefile」が以下の場合:
次に、結果として (obj) のみを取得します。
このように、すべてのオブジェクトのリストを取得するにはどうすればよいですか?
ありがとう。
ruby - Ruby で Sexp 式に関するツールを探しています
私は最近、Ruby の s-exp 式のファンになりました。たとえば、Sexpistol パーサーを発見しました。
それらに関連する他の専用ツール (スキーマなど) を使用していますか?
lisp - S式イディオム
私はS式に興味がありますが、それでも正しいイディオムを念頭に置いていません。
名前と型指定されたポートのリストによって特徴付けられるVLSIコンポーネントを想像してみてください。何が望ましいか:
(コンポーネント名(p1フロート)(p2フロート))
また
(コンポーネント名((p1 float)(p2 float)))
?
ruby - RubyでS式でASTを構築するには?
S-exp をビルドする方法がわかりません。自分の言語用に AST をビルドする必要があるため、それを実行したいと考えています。最初は、RubyParser を使用してそれを sexp に解析し、次にコード gen に解析しました。しかし、それはRubyのサブセットに違いないと思います。私が望む言語を定義することはできません。次に、自分の言語にパーサーを実装する必要があります。
では、S-expression 用の AST を構築する Ruby ツールを推奨できる人はいますか?
ありがとう!
lisp - なぜ`nil`が必要なのですか?
アイテムのシーケンス(いわゆる適切なリスト)をnil
いつ行う必要があるのか[1]がわかりません。cons
いわゆる不適切なリスト(cons
末尾のない-edペアnil
)だけを使用することで、同じ目標を達成できるように思われます。Lisps [2]は、aとアトムを区別するための基本的なプロシージャをすでに提供しているためpair?
(一部の実装ではatom?
)、たとえば、リストでプロシージャを定義するときに、length
以下に示すように、点線のペアだけで同じことができます。 :
従来のとは対照的に'(1 . (2 . 3))
、期待される答えを得るために、この手順を不適切なリストに適用できることは明らかです。3
(length '(1 2 3))
の必要性を弁護するご意見をお聞かせnil
ください。前もって感謝します。
nil
[1] / NIL
、'()
との間の議論は無視しましょう()
。
[2]ここでは、Lispファミリーの言語を意味します。
lisp - 不適切なリストとは何ですか?
これは私の前の質問のフォローアップです:なぜ nil が必要なのですか? 明らかに、ほとんどの場合適切なリストが使用されます。しかし、不適切なリストの目的は何ですか?