問題タブ [picolisp]

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 投票する
2 に答える
1037 参照

lisp - picoLisp 言語: onOff の質問

この質問は本当に議論の余地があります。プログラムか何かでバグに遭遇したに違いないと思います。PicoLispと onOff の動作をまだ探している場合は、こちらをご覧ください。




これは起こるはずですか?

  • シンボル名を明示的に渡すべきではありませんか?
  • 最後のシンボルの値を返すのはなぜですか?
0 投票する
1 に答える
486 参照

lisp - Picolispの質問、番号のリストを操作するときのセグメンテーション違反(メーリングリストから)

Picolispは初めてです。

私はこれを試し、セグメンテーション違反を取得しました:

しかし、私が試してみると:

理由はほぼ理解できますが、PicoLispがエラーではなくセグメンテーションフォールトで応答したのは驚きでした。これは、Picolispが数値が関数であるかどうかをチェックしないが、それが記号である場合はチェックすることを意味しますか?

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

lisp - Pilogで自動生成されたキー

Pilogの自動生成キーを使用するための最良の方法は何ですか?私は少し掘り下げていて、関連するものを見つけることができません。

ヒントとポインタをいただければ幸いです。ありがとうございました。

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

macos - 'call foo@plt' に関する OSX GNU アセンブラの問題

Mac OS X (10.6.7) で 64 ビットの PicoLisp をビルドしようとして、OSX Dev で問題が発生したようです。ツール GNU アセンブラー ('as')、バージョン 1.38。私の Xcode はバージョン 3.2.4 です。問題を引き起こす (生成された) x86-64.darwin.base.s の行は通常、次のようになります。

...そして、次のようなエラーメッセージが表示されます。

64 ビットの PicoLisp は、Linux および SunOS 上で問題なくビルドされます。これらのプラットフォームには、おそらく、GNU アセンブラーのより機能的な (新しい) バージョンがあります。新しい GNU アセンブラが OSX/Darwin で利用できるかどうかはわかりません...または他の解決策があるのでしょうか?

OSX/Darwin でこれを自分で試してみたい場合は、必要なファイルをいくつか提供できます。

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

scope - パラメータで変数をシャドウしない PicoLisp 関数の書き方

私は PicoLisp をぼんやりと調べていて、伝統的に (他の Lisp 方言では) マクロで処理されるメタプログラミング関数をどのように書くかについて困惑していることに気づきました。私にとって最大の懸念は、変数名のシャドウイングを防ぐ方法がわからないことです。Metaprogramming 101の例を確認すると、どちらかといえば、私はさらに混乱したままになりました。

mapeachリンクされた記事に見られるように、関数を実装する方法の例:

これらのそれぞれを call でテストしました(let "Args" * (mapeach N (1 2 3) ("Args" N N)))。予想どおり、PicoLisp インタープリター (コマンドで開始pil +) はセグメンテーション違反を経験し、クラッシュします。これは、 がコール ポイントで定義されたものをシャドウするためmapeachだと思います。"Args""Args"

map@また、 (の「よりかわいい」代替)の両方の実装を試しましmapeachた。

(let "Args" * (map@ (1 2 3) ("Args" @ @)))はこれらの実装のそれぞれをテストしていました。奇妙なことに、最初の実装を初めてテストしたとき、segfault が発生しなかっただけでなく、実際に正しい結果が生成されました(1 4 9)。その後の各テストでは、segfault が発生しました。明確にするために、プロンプトからのスニペット:

セグメンテーション違反は、(当時)未定義の関数への呼び出しによって何らかの形で防止されたと思います。mapeach私も試し(ooga booga)てみましたが、同様にセグメンテーション違反を防止しました。定義を適切な呼び出しから分離する誤った呼び出しがない場合、segfault は常に発生します。

これは最終的に 2 つの質問で最高潮に達します。

  1. 名前のシャドウイングを防ぐにはどうすればよいですか? 明らかに、例はその点で成功していません。
  2. map@ へのその呼び出しがsegfault にならないのはなぜですか?
0 投票する
1 に答える
28 参照

lisp - PicoLispのcondでデフォルト値を返す方法

condステートメントで他の条件が満たされない場合、デフォルト値を返そうとしています。PicoLispでこれを達成するにはどうすればよいですか?

この参照コードでコード化された例