Luaはファーストクラスの関数をサポートしているので、多くの関数型言語のように、演算子をdesugarできるかどうかを知りたいと思います。例えばOCamlの中であなたが行うことができます:Desugar Luaオペレータ
let x = (+) 3 5
値3 + 5
を持つ変数x
のINIT上記のコード。 (+)
を書くことは、2つのパラメータをとり、その合計を返すローカル関数を持つことに相当します。 (+) 3 5
は、この関数を2つの引数3
と5
で呼び出しています。
local t = {"ab", "d", "c" }
local function op_greaterthan (a,b) return a>b end
table.sort (t, op_greaterthan) --would like to write: table.sort (t, (>))
ありがとう: 動機は、これはあなたが前に、機能に包みすることなく、機能に直接オペレータを渡すことができるということです尻!
私は答えは分かりませんが、不可能な場合は、独自の関数( 'function add(a、b)return a + b end'を返すことができます) – personak
Um、そのコードが実際に何をするのか説明できますか?誰もOCamlが何であるかを知らない。 –
なぜ1つのdesugar演算子ですか? –