問題タブ [ccl]

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 に答える
131 参照

multithreading - Lispで解放せずに読み書きロックを取得する方法は?

Clozure CL を使用してアプリを作成しています。アプリでは、いくつかのファイルを書き込む必要があるため、ファイルごとに読み書きロックを作成しました。

今、私はquit関数を書こうとしています。すべてのファイルの書き込みが完了したかどうかを確認して終了します。基本的には以下のように動作します。

  1. すべてのファイルの読み取り/書き込みロックを取得します
  2. CCLをやめる

Clozure CL ドキュメントを読みましたが、grab-write-lock のような関数が見つかりません。「grab-lock」、「with-read-lock」、「with-write-lock」しか見つかりません。'grab-lock' は read-write-lock では機能しません。他の 2 つは自動的にロックを解放します。では、すべてのファイルの読み取り/書き込みロックを取得して (解放せずに)、アプリを終了するにはどうすればよいでしょうか?

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

json - Hunchentoot で raw-post-data を処理する方法

RESTAS、Hunchentoot、CL-JSON を利用した Lisp API に取り組んでいます。次のように定義されたルートがあります。

現在、Postman を使用して HTTP POST リクエストを送信しています。リクエスト本文には、次のような JSON データの例が含まれています。

画面に出力できるので、リクエストボディは明らかに通過しますが、そのdecode-json部分には500サーバーエラーが残ります。妥当と思われるいくつかの組み合わせを試しましたが、その JSON を解析できませんでした。plist理想的には、alistまたはハッシュテーブルに解析したいと思います。どんな助けでも大歓迎です。

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

if-statement - `if` の代替実装 - 理解不能な動作

ifブール論理とマクロを使用して独自のものを書きたかったのです。私は次の実装を思いつきました:

いくつかのケースで手動でテストしましたが、期待どおりに動作します。しかし、一連のテストを実行するための簡単なテスト関数を書いたところ、まだ理解できない結果が 1 つ得られました。私は次のように関数を書きました:

テストを実行すると、次の出力が得られます。

2 番目の失敗例は、手動で実行した場合と、この関数の一部として実行した場合で明らかに異なる結果になります。SLDB でデバッグしてみましたが、実際にスタンドアロンで実行した場合とは結果が異なります。重要な実行の詳細などを見逃していたのではないかと思います。誰かがここで何が起こっているのか説明できますか? 助けて本当に感謝しています。

PS私の実装はClozure CLです。

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

lisp - clozucommon lisp の読み取りエラー

私が次のように読んでいる、外国語の文字を含むs式のファイルがあります。

ccl 1.8 ではエラーなしでファイルを読み取りますが、1.9 ではエラーをスローします。

何がうまくいかないのか、それを修正する方法はありますか? ご要望に応じてデータファイルをお送りします。

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

common-lisp - Common Lisp (CCL) で stdout をファイルに永続的にリダイレクトする

stdout をファイルに永続的にリダイレクトしようとしていますが、これを行うことについて見つけることができるすべての例には、標準出力グローバルを使用して let 内または with-open-file 内で行うことが含まれます。アプリケーション全体のリダイレクトを行う方法はありますか?

編集:標準出力でリダイレクトを実行しようとした方法は次のとおりです:

probe-fileこれは REPL への出力を停止しますが、印刷呼び出しからのファイル (存在し、によって表示される) には何も表示されません。

編集:ドリブル機能を使用してみました:

しかし、次のエラーが表示されます。

エラー: ジェネリック関数に適用できるメソッドがありません: #STANDARD-GENERIC-FUNCTION CCL::STREAM-SET-COLUMN #x30200006557F (引数を指定して呼び出された場合): (# 0) 実行中: #、プロセス Listener(11) 内。cmd-/ と入力して続行します。中止するには、cmd-\ で利用可能な再起動のリストを表示します。続行する場合: もう一度呼び出してみてください タイプ :? 他のオプションについて。