問題タブ [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.
lisp - Picolispの質問、番号のリストを操作するときのセグメンテーション違反(メーリングリストから)
Picolispは初めてです。
私はこれを試し、セグメンテーション違反を取得しました:
しかし、私が試してみると:
理由はほぼ理解できますが、PicoLispがエラーではなくセグメンテーションフォールトで応答したのは驚きでした。これは、Picolispが数値が関数であるかどうかをチェックしないが、それが記号である場合はチェックすることを意味しますか?
lisp - Pilogで自動生成されたキー
Pilogの自動生成キーを使用するための最良の方法は何ですか?私は少し掘り下げていて、関連するものを見つけることができません。
ヒントとポインタをいただければ幸いです。ありがとうございました。
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 でこれを自分で試してみたい場合は、必要なファイルをいくつか提供できます。
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 つの質問で最高潮に達します。
- 名前のシャドウイングを防ぐにはどうすればよいですか? 明らかに、例はその点で成功していません。
- map@ へのその呼び出しがsegfault にならないのはなぜですか?
lisp - PicoLispのcondでデフォルト値を返す方法
cond
ステートメントで他の条件が満たされない場合、デフォルト値を返そうとしています。PicoLispでこれを達成するにはどうすればよいですか?