問題タブ [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.

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

clojure - 信頼できないClojureコード(シリアル化されたデータだけでなく)を安全に読み取る方法は?

動作しますが、安全ではありません

動作しません...

Clojureコード(すべての「#」を保持することが望ましい)を安全にツリーに読み込む方法は? コードをスキャンして脅威を検出し、プレーン テキストではなくデータ構造を操作する Clojure アンチウイルスを想像してみてください。

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

lisp - s-exp をシリアル化解除してからシリアル化し、大文字を避けるにはどうすればよいですか?

複雑な s-expression ツリーを読み取り、いくつかのノードを変更して、どこかに保存することになっています。

処理中の 'read 関数が入力を「変更」しているようです。たとえば、簡単な例では次のようになります。

ノード (および値) が大文字になっていることがわかります。

同様に、値の最も外側の左右にパイプを追加できるようです。次のように:

パイプを追加します!

「そうしないように読む」ように指示する方法はありますか? s式が実際に有効なLISPプログラムである場合、そのような変更は正当な理由で行われると思います。しかし、ここではそうではありません。そのファイルを XML ファイルとして見てみましょう。s-expr のように見える単純な構成ファイル。読み取ったシンボルを「インターン」する必要はありません。私にとっては、ツリーを検索する最も簡単な方法であるため、ツリーとしてシリアル化を解除する必要があります( 'car および 'cdr は適切ではありません)。

ツリーが形成された場合、すべてのシンボルをインターンする必要があります..別の言葉で言えば、シンボルをインターンせず、代わりに文字列として保持するように彼に伝えるにはどうすればよいでしょうか。(したがって、コンスツリーを形成できますが、シンボルを指す代わりに、文字列を指すことになります。私の言いたいことがわかりますか?)

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

graph-theory - 有向非巡回グラフの S 式?

私たちが知っているように、ツリー構造は S 式で表すことができます。例えば

しかし、グラフ (特に DAG) に S 式を使用することは可能ですか? 例えば

私の 2 番目の質問は、S 式のトポロジー限界が表現できるものは何ですか?

私はこの質問をグーグルで検索しましたが、手がかりを見つけることができませんでした.CSの正式なバックグラウンドがなければ、自分でこれを理解するのに苦労しています. この質問を閉じないでください。前もって感謝します!

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

converter - S式からDOTへの変換ライブラリ

S式をドット形式に変換するための簡単なスクリプトまたはライブラリを探していますが、グーグルで解決策を見つけることができませんでした。

古い awk スクリプト ( lisp2dot ) を見つけましたが、遺伝的プログラミング フレームワークから S 式を生成しているため、式が複雑すぎる可能性があると思います。出力ツリーがどのように見えるかを把握できるように、それをドット形式に変換しようとしています。

任意の提案が必要です...これは実際にはプレゼンテーションの目的であり、出力に対する好奇心を満たすためだけに手動で行うことはしたくありません (大きな S 式を読み取るのは面倒になる可能性があるため)。

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

pex - PexSymbolicValue.GetRawPathConditionString() の記号の意味は何ですか?

PexSymbolicValue.GetPathConditionString() を使用して、PexMethods 内のパス条件を取得しています。S式形式でパス条件を取得するメソッド PexSymbolicValue.GetRawPathConditionString() があることがわかりましたが、その出力で使用されているシンボルの参照が見つかりません。この出力の例: 「(Ceq (Ceq node null) 0)\r\n(Ceq (Ceq(select next node) null)0)\r\n(Clt (Add (select elem node)(Mul (select elem) (次のノードを選択)) -1)) 1)\r\n"

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

python - Python -- 既存のクラス メソッドを使用した特別なメソッド演算

このクラスは、有限体多項式文字列を取り、それを解析し、(+-*/%) を演算してから、入力と同じ形式で出力します。それはうまくいきます(今のところ)。しかし、現在、算術演算子に特別なメソッドを実装しようとしていますが、単純に文字列を連結するだけでは解決できません。一般に、入力をクラス インスタンスに初期化することが考えられますが、この場合、これを行う試みを複雑にしているように見える入力に正規表現があります。私は独学で Python を学んでいるので、これは私にとってはホラー映画ですが、経験豊富な Python プログラマーにとってはおもちゃにすぎません。

これらには多くの情報があるようですが、この状況でどれだけ役立つかはわかりません。

私が使用しているクラスと例は次のとおりです。

一番下の最後の例は、問題を示しています。

そして出力:

ご覧smadd1のとおり、連結するだけでなく、+ を使用してこれら 2 つを追加する必要があります。また、この状況で S 式ツリーを使用する必要があるかどうかを知りたいです。

編集:

Multiply() は機能していましたが、現在は機能していません:

元の形式は次のとおりです。


その問題を無視してmultiply()、修正しました。変更された行は次のとおりです。

そして、その前の行が取り出されました。

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

lisp - LISP 1.5 Lisp はどのように機械語に似ているのですか?

ジョン・マッカーシーがまだ生きていればよかったのに…

LISP 1.5 Programmer's Manualから:

LISP は、S 式の形式で記述されたプログラムを解釈して実行できます。したがって、機械語と同様に、他のほとんどの高水準言語とは異なり、さらに実行するためのプログラムを生成するために使用できます。

機械語を使用してプログラムを生成する方法と、Lisp でそれを行う方法について、もっと明確にする必要がありますか?

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

c - C に埋め込まれた R を実行する

サイズ 4x4 の正方行列を宣言する C コードを作成しました。rgig次に、Rのパッケージで呼び出されたサンプリング関数からサンプリングしますGeneralizedHyperbolic。gnu の gsl ライブラリを使用して行列を反転し、結果を吐き出します。これは、C から R を呼び出す演習です。

以下を使用してコードをコンパイルしました。

出力付き:

私が提出するとき:

エラーが発生します:

私は何を間違っていますか?

main()また、をに変更しtest()、共有オブジェクトを次のように作成しました

出力で:

R Studio でa を実行するdyn.load("embedR_matinv.so")と、コードは終了せずに実行されます。つまり、ハングします。

コードのどこが間違っているかについて何か提案はありますか?

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

emacs - Emacs:防弾アップリスト?

私はup-list: Scan error: "Unbalanced parentheses"この位置から取得しています:

up-listドキュメントからのスニペット:

このコマンドは、ポイントが文字列またはコメント内にないことを前提としています。

したがって、これは予想される動作です。しかし、私は気にしません。リストから上に行きたいだけです。誰かがup-list適切なことをするクローンを提案できますか?

この単純なコードよりも優れたものを探しています: