私はこのようないくつかのコードを持っている:最後のletバインディングに文字列としてアクセスできるcamlp4構文拡張を記述することはできますか?
let full = Var({name ="full"; value = F});;
私はむしろ「フルを繰り返す必要はありませたい:私は私がしなければならない変数を作成したい場合は後で
type boolean = T | F
type bexp = Const of boolean
| Var of variable
| Bop of bop * bexp * bexp
| Not of bexp
and bop = And | Or | Xor
and variable = { name: string; mutable value: boolean }
を'を2回繰り返し、名前を文字列として取得するための内観的な方法を考え出したいと思います。私はcamlp4がこれで動くかもしれないと思っていますが、どこから始めたらいいのかわかりません。
let full = Var({name = :letname:; value = F});;
:letnameは:の代わりに文字列として結合現在のLETで(この場合は「フル」)を埋めるだろう
だから、最終的には私のような何かを行うことができるようにしたいのですが。 (構文:letname:?ちょうど提案、OCamlでの構文と衝突しません構文については、他のアイデアです)
は、このような、より簡潔な構文がおそらく望ましいでしょう:
その後、希望var full = F
以下のように展開してください:
let full = Var({name = "full"; value = F});;
これはcamlp4で可能ですか?もしそうなら、どうすればいいですか?
(さらに考慮すると、:letname:構文または類似した何かが、より汎用的かつ複数の領域で有用であろう)
[OK]をクリックしてコンパイルして、私はCamlp4のと、この時の私の最初の試みについての質問を投稿しました。 – aneccodeal