Clojure に関する別の質問があります。
そのため、現在プロジェクトに取り組んでおり、そのための GUI コンポーネントを作成しようとしています。すべての機能パーツが機能しているので、見栄えを良くして、シーソーの仕組みについてもう少し学びたいと思います。
基本的に、ユーザーが特定の種類のデータを入力するために使用できる一連の入力フィールド (つまり、テキスト フィールド、スライダー、コンボボックス) があります。ユーザーが「確認」ボタンをクリックすると、ボタンのアクションで前述の入力フィールドのすべての値が返されるようにします。スレッドの経験はあまりありませんが、(明らかに) 同時実行性の問題が発生する可能性があることは理解しています。どうすればこれを達成できますか?
参考までに、私のコードの小さなサンプルを次に示します。
;
;in restaurant-gui.core
;
(defn window-setup []
(let [my-font (font :name "Arial"
:size 22)
cuisine-label (label :text "Cuisine: "
:font my-font
:border [20 10])
cuisine (combobox :model["Any cuisine"
"American"
"Barbecue"
"Chinese"
"French"
"Italian"])
confirm-button (button :text "Confirm"
:listen [:action (fn [event] event
(selection cuisine))])
window-contents (vertical-panel :items [cuisine-label cuisine
confirm-button])]
window-contents))
;
;in restaurant-inference-engine.core
;
(defn -main
[&args]
(binding [window-contents (window-setup)]
(draw-window window-contents) ;somehow listen here for
;information from the button
;and bind it to button-info?...
(search-for-restaurant button-info)))
また、誰かが私が見ることができる単純から中間の clojure コードを知っていれば、私は非常に感謝しています. 言語の理解を深めるために、適切に作成された clojure コードにもっと触れたいと思っています。