概要
wasmが、スタックマシンらしいので、やってみた。
plunkerでwasmのwatのsandboxやってみた。
数9を4個使って、1から15まで求める式
AIに勝った。
数9を4個使って、1を求める式
(module
(func (export "one") (result i32)
i32.const 9
i32.const 9
i32.div_s
i32.const 9
i32.const 9
i32.div_s
i32.mul
)
)
数9を4個使って、2を求める式
(module
(func (export "two") (result i32)
i32.const 9
i32.const 9
i32.div_s
i32.const 9
i32.const 9
i32.div_s
i32.add
)
)
数9を4個使って、3を求める式
(module
(func (export "three") (result i32)
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.add
i32.const 9
i32.div_s
)
)
数9を4個使って、4を求める式
(module
(func (export "four") (result i32)
(local $dup i32)
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
local.tee $dup
local.get $dup
i32.add
i32.const 9
drop
)
)
数9を4個使って、5を求める式
(module
(func (export "five") (result i32)
(local $dup i32)
i32.const 9
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
local.tee $dup
local.get $dup
i32.add
i32.sub
)
)
数9を4個使って、6を求める式
(module
(func (export "six") (result i32)
(local $dup i32)
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.add
i32.const 9
i32.div_s
local.tee $dup
local.get $dup
i32.add
)
)
数9を4個使って、7を求める式
(module
(func (export "seven") (result i32)
i32.const 9
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
i32.sub
)
)
数9を4個使って、8を求める式
(module
(func (export "eight") (result i32)
i32.const 9
i32.const 9
i32.mul
i32.const 9
i32.sub
i32.const 9
i32.div_s
)
)
数9を4個使って、9を求める式
(module
(func (export "nine") (result i32)
i32.const 9
i32.const 9
i32.const 9
i32.sub
i32.const 9
i32.mul
i32.add
)
)
数9を4個使って、10を求める式
(module
(func (export "ten") (result i32)
i32.const 9
i32.const 9
i32.mul
i32.const 9
i32.add
i32.const 9
i32.div_s
)
)
数9を4個使って、11を求める式
(module
(func (export "eleven") (result i32)
i32.const 9
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
i32.add
)
)
数9を4個使って、12を求める式
(module
(func (export "twelve") (result i32)
(local $dup i32)
i32.const 9
local.tee $dup
local.get $dup
i32.const 9
i32.add
i32.const 9
i32.add
i32.const 9
i32.div_s
i32.add
)
)
数9を4個使って、13を求める式
(module
(func (export "thirteen") (result i32)
(local $dup i32)
i32.const 9
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
local.tee $dup
local.get $dup
i32.add
i32.add
)
)
数9を4個使って、14を求める式
(module
(func (export "fourteen") (result i32)
(local $dup i32)
i32.const 9
local.tee $dup
local.get $dup
i32.const 9
i32.const 9
i32.add
i32.const 9
i32.div_s
local.tee $dup
local.get $dup
i32.add
i32.sub
i32.add
)
)
数9を4個使って、15を求める式
(module
(func (export "fifteen") (result i32)
(local $dup i32)
i32.const 9
local.tee $dup
local.get $dup
i32.add
i32.const 9
i32.const 9
i32.const 9
i32.add
i32.add
local.get $dup
i32.div_s
i32.sub
)
)
以上。