opa にコールバックを実装しようとしているので、変数がサーバー側で更新されると、クライアントはその更新された値をすぐに取得します。
私はネットワークでそれを行うことができることを知っています:
Network.add_callback(update_function, room)
ただし、学習演習として、その機能を自分で実装したいと考えています。
void->void
最初に考えたのは、関数のリストを作成することでしたlist(void->void)
。ここで、変更可能な状態と変数がないという最初の問題に遭遇しました。そのため、作成したリストにコールバック関数を追加できません。
これは私の最初の質問につながります: 変更可能な状態を持たずに作業するにはどうすればよいですか? 関数型プログラミングは初めてだとは思いませんが、通常は変数を再割り当てするだけです
すなわち
x = ['a','b','c']
function addVal(val){
x = List.add(val,x)
}
しかし、これは opa では合法ではないようです。
変数や変更可能なデータ構造なしで作業するにはどうすればよいでしょうか? 可変状態なしで動的コンテンツを実装する方法がわかりません。
この問題を回避するために、コールバック関数のリストをデータベースに保存することにしました。
database callbacks{
list(void -> void) functions
}
しかし、私はエラーが発生します
Elements of type void -> void cannot be stored in the database
これは私の2番目の質問に私を導きます:
doc.opalang.org よりも優れた opa のリソースはありますか? データベースで許可されている型に関する情報を見つけることができませんでした。
要約すると:
- 変更可能な状態や変数を使用せずに実際に何かを行うプログラムを作成するにはどうすればよいですか?
- opa データベースで許可されているタイプは何ですか?
- doc.opalang.org 以外に opa に関する有用なリソースはありますか?