問題タブ [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 に答える
369 参照

string - common lisp における非標準の ASCII 文字のテスト

文字列をテストして、10 進数の 127 を超えるコード (拡張 ASCII コード) または 32 未満の文字が含まれているかどうかを確認する必要があります。文字の文字コードを比較しますか? Common Lisp 実装 CCL を使用しています。

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

cocoa - NSTextFieldCell プロトタイプで NSFormCell のメソッドを呼び出す NSMatrix

NSTextFieldCell をプロトタイプとして NSMatrix を作成しました。しかし、ビューがウィンドウに追加されて描画されると、次のエラーが発生します。

Cocoa が NSTextFieldCell プロトタイプで setTitleWidth: を呼び出すのはなぜですか? setTitleWidth: NSTextFieldCell メソッドではなく、NSFormCell メソッドです。

そのプロトタイプをサブクラス化し、setTitleWidth: と titleWidth: のダミー メソッドを追加すると、すべてが機能しますが、これは明らかにハックです。

何が起こっているのですか?以下は、作業コードの関連セクションです。

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

lisp - ラムダはdocstringを持つことができますか?

docstring を使用できることはわかっているdef*ので、ラムダを試してみます。

恥ずかしいことに、以下は NIL を返します。

どうしたの?ラムダはdocstringを持つことはできませんか? それを行う方法はありますか?

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

locking - Lisp、CLOS: ロック クラスにスロットを追加する

ロック クラスに新しいスロットを追加しようとしています。階層内に多数のロックがあり、すべてのロックの親ロックを保存すると、デバッグ中に問題を検出しやすくなるため、これは便利です。

残念ながら、これは ensure-class 関数では実行できないようです。組み込みクラスとしてリストされているため、スロットを「プロセス」に追加できますが、「ロック」には追加できません。「プロセス: lisp、CLOS:プロセスクラスにスロットを追加する方法については、私の以前の質問を参照してください。

この問題を解決する方法を知っていますか? それが不可能な場合、考えられる唯一の代替手段は、ロックの階層関係をハッシュ テーブルに保存することですが、一部のロックは実行時および異なるプロセスで作成されるため、さらに別のロックを追加する必要があります。ロックのメタデータを格納するハッシュテーブルにアクセスします。

これは非常に非効率的だと思います。もっと良いアイデアはありますか?

編集:明確にするために、私はClozure Common Lispを使用しています。

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

windows - clozure cl: Windows 7 の cl-freetype2

私は、quicklisp がインストールされた clozure cl (バージョン 1.8-r15286m) を使用して Windows 7 64 ビット システムで作業しています。

Common Lisp 用の freetype2 バインディングが必要です。(文字をグリフにマップ + カーニング情報)

を使用して「cl-freetype2」をインストールしようとしました

32 ビット clozure cl から、いくつかの問題に遭遇しました。

  1. "grovel.lisp" (にあるquicklisp/software/cffi_0.11.1/grovel/grovel.lisp) は、gcc が "c:/msys/1.0/bin/gcc.exe" にインストールされていることを前提としています (パスに mingw-gcc がありますが、そこにはありません)。"grovel.lisp" の "c:/msys/1.0/bin/gcc.exe" を "gcc" に置き換えて修正しました。
  2. freetype2 の cffi バインディングをコンパイルしようとすると、インクルード ディレクトリをコンパイラに渡すときに (つまり、gcc`-i"d:/somedir"に渡す代わりに-i"/somedir")、同じファイルにドライブ文字が含まれません。
  3. "grovel.lisp" は UNIX インクルード ディレクトリをインクルードしようとします。

#2を自分で修正することはできません。このディスカッションを見つけ、リストされている両方のパッチを試しましたが、どちらも機能しませんでした。(最初のものは cffi を壊します。なぜなら、ccl は「namestring-prefix」関数も「pathname-prefix」関数も見つけられないからです)、2 番目のものは問題を解決しません。

この状況で何ができますか?「groveller」を自分で修正するのは避けたいと思います。freetype2 のバインディングが必要なだけです。基本的に、私はできる必要があります

  1. TrueType フォントをロードします。
  2. Unicode 文字をグリフにマップします。
  3. グリフのペアのカーニング情報を取得します。
  4. グリフ ビットマップを読み込みます。

何か案は?

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

common-lisp - common lisp: defstruct 構造体のスロット値

一般的な Lisp では、スロット名/シンボルを使用して構造体スロットにアクセスするには、何を使用できますか?

私が欲しいのは

私はclozure clを使用しています.clozure clではこれが機能します。ただし、知る限り、これは非標準の動作です (「未定義の動作」C++ と同等)。別の CL 実装に切り替えるつもりはないので slot-value、構造体を使い続けるべきですか、それとももっと良い方法がありますか?

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

lisp - CCL は、ファイル/ディレクトリ名の不正な文字を壊しますか?

次の点を考慮してください。

ディレクトリの1つに文字「;」が含まれているため、これは壊れます。

上記の「*」が削除された場合、コードは「;」が含まれるディレクトリ リストを返します。エスケープされます。

一部のディレクトリには「;」が含まれているため、それ以上下に移動できないようです

これに対する修正はありますか?

ありとあらゆる称賛に感謝します。ありがとうございました。

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

lisp - Windows では、CR は Common Lisp の read-line の後にまだここにある

Windows でテキスト ファイル (つまり、行末が CRLF のファイル) を読み取る関数があり、このファイルでread-lineを呼び出すと、CR で終わる文字列が取得され、これは SBCL または Clozure CL で終わります。MKCL では、CR と LF の両方が削除されます。

だから、どの実装が正しいのだろうか?

標準によると、主要な値である line は、読み取られる行であり、文字列として表されます (末尾の改行がない場合)。ここを参照)。したがって、CR または LF が残っていないはずだと思いますが、私にはあまり明確ではありません。

もちろん、回避策はありますが、かなり面倒です。これがバグなのか、単に実装依存なのかを知りたいです。