問題タブ [clos]
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.
php - PHP の CLOS ライクなオブジェクト モデル
Mooseから php 開発に戻りましたが、phpの CLOS のようなオブジェクト モデルが本当に恋しいです。オブジェクトを扱うときに PHP でより少ないコードを書くことを可能にするある種のシンタックス シュガーはありますか?
この要件をもう少し強調します。一つのことを複数の場所に書きたくない。コードの一部が自動的に生成されても問題はありませんが、開発するために見なければならないコードの中で、雑然とした冗長な情報を見たくありません (本当にもっと類推が必要な場合は、LISP マクロを考えてください)。したがって、この部分がより理にかなっている場合は、DSL と呼ぶこともできます。
私は、少なくともロール(ミックスイン) と、再発明することなくある種の内省をしたいと思っています。コード ジェネレーターとオートローダーは、この問題の少なくとも一部を解決する 1 つの方法かもしれません。
ps JavaScript にはJooseがあるので、同様の API は非常に便利です。
lisp - 学習しようとしている: オブジェクトの再配置、および LISP の汎用関数!
別の質問の結果として Practical common Lisp を読んでいます。
LISP がオブジェクトを管理する方法を見つけることができる第 16 章と第 17 章を読みました。しかし、Java がどのようにオブジェクトを管理するかを数年間考えた後、CLOS を使用して LISP でより大きなアーキテクチャを実装する方法を本当に理解できないようです。
そこで、単純な例よりも大きなアーキテクチャに適用される CLOS について 20 ~ 50 ページを読んでほしいとお願いします。たぶん、いくつかのブログ投稿や経験さえあります!
タイ
lisp - クラス内のlispファイルポインタ
クラス内でファイル アクセスを処理する CLOS の方法を理解する上で問題に直面しています。C ++では、これを行うことができます:
私が指摘したいのは、 PraseData() が複数回呼び出され、そのたびに新しいデータ ブロックがファイルから解析され、my_data が変更されることです。
私はCLOSで同じトリックを実行しようとしています-データを解析し、ファイルをロードし、ヘッダーを読み取るなどするためのすべての汎用メソッドと、私が持っているクラス定義を作成します:
「コンストラクタ」(つまり、initialize-instance) で、私の C++ イディオムと同じようにファイルを開きます。その後、データにアクセスできるようになり、以前と同じようにデータを解析できます。ただし、「デストラクタ」または(ファイナライズ)メソッドを使用してファイルを閉じることは、データファイルの外部にアクセスできるようにファイルが必要なこの種の状況を処理するための慣用的なCLOSではないと言われていますメソッド。
データ ファイルをロードし、そのデータを使用して一連の分析を実行し、できればファイルを閉じる関数を定義します。これを行う方法は何ですか?(私は、マクロまたは何らかのタイプのクロージャがここで機能すると想定していますが、何が必要か、またはそれをどのように実装するかを決定する Lisp の方法に十分に精通していません)。
lisp - Common Lispでdefgeneric/defmethodをクロスパッケージしますか?
パッケージAでジェネリックを定義し、CLOSのパッケージBでこのジェネリックのメソッドを提供する正しい方法は何ですか?
前もって感謝します!
例:
lisp - Allegro CL で編集可能なテキスト値を変更する
Default-Button をクリックして、Allegro CL (バージョン 8.0.1) の Editable-Text コントロールの値を変更しようとしています。
について読んだこと(setf value)
がありますが、例は見つかりませんでした。
オンクリックイベントに追加した関数は次のとおりです
(setf (slot value :txt 'value) 'TEXT)
ご覧のとおり、そこにはコードがありません:)さまざまな方法を試しまし(setf value 'TEXT)
たが、役に立ちませんでした。
フォームのダイアログ項目スロットは、によって定義された次の要素を持つリストです。
何か助けはありますか?前もって感謝します。
common-lisp - change-classを使用して、数値から多項式オブジェクトを作成します
SICP 2.5.3で説明されている行に沿って多項式クラスを作成しました(defclassの使用を除く)。多項式とハミング数をシームレスに加算および乗算できるようにしたいのですが、change-classに数値を受け入れさせることはできません。
クラスを整数から浮動小数点に変更して、問題を単純化しようとしました。
しかし、それは私にエラーを与えました:
(fyi)から同じ形式のエラーが発生します:
先に進んで手動変換を実装しますが、組み込みのclos機能を使用したいと思います。
Xachが指摘しているように、強制またはフロートを使用して4をフロートに変更できます。これは、私がやろうとしていたことのより簡単な例として、また、update-instance-for-different-classが間違っている可能性を排除することを目的としていました。
これが私が試したものの長いバージョンで、うまくいきませんでした:
上記の例のようなエラーがまだ発生します。
macros - (簡単な)マクロの書き方は?
(with-hooks (monster method who what) &body body)
私が書いているゲームのマクロを書く必要があります。Monster は CLOS オブジェクト、メソッド、誰が文字列、何が関数 (#' 表記) です。マクロ拡張は、
このようなマクロの書き方がまったくわからないので、助けていただければ幸いです。これは簡単で、少し無知な気がします。
lisp - クラスが common lisp の別のクラスのサブクラスであるかどうかをテストする
ある CLOS クラスが別の CLOS クラスのサブクラスであるかどうかを確認するにはどうすればよいですか?
serialization - closオブジェクトをlispで印刷可能にする
Common lispのCLOSオブジェクトを印刷可能(読み取り可能に印刷)にしたい場合、印刷と読み取り以外の何も使用せずにこれを行うにはどうすればよいですか。