作品プログラム
- 動作環境
- Sumire 2.0.1339
- 投稿者
- ohisama
- 投稿日
- 2025-08-07 19:12:30
- ダウンロード数
- 101
作品のプログラム
[文字列:文字列]を[区切り文字:文字列]で分割する手順:配列
【配列】は,{}。
【現在位置】は,1。
【次の位置】。
繰り返す
次の位置は,文字列の現在位置文字目から区切り文字を探したもの。
もし次の位置が0なら
文字列の現在位置文字目以降を配列に加える。
繰り返しから抜ける
でないなら
文字列の現在位置文字目から次の位置-現在位置文字,取り出したものを配列に加える。
現在位置は,次の位置+1。
もし終わり
もし現在位置が文字列の文字数より大きいなら,
繰り返しから抜ける
もし終わり
繰り返し終わり
配列を返す。
終わり
[ソース]を、forthする手順
stackというスタックを、作る
行は,ソースを「 」で分割したもの。
行を要素へそれぞれ繰り返す
要素が「9」なら
stackに、9を、積む
他で要素が「+」なら
topは、stackから、取り出したもの
top2は、stackから、取り出したもの
v = top2 + top
stackに、vを、積む
他で要素が「-」なら
topは、stackから、取り出したもの
top2は、stackから、取り出したもの
v = top2 - top
stackに、vを、積む
他で要素が「/」なら
topは、stackから、取り出したもの
top2は、stackから、取り出したもの
v = top2 / top
stackに、vを、積む
他で要素が「*」なら
topは、stackから、取り出したもの
top2は、stackから、取り出したもの
v = top2 * top
stackに、vを、積む
他で要素が「dup」なら
topは、stackから、取り出したもの
stackに、topを、積む
stackに、topを、積む
他で要素が「drop」なら
topは、stackから、取り出したもの
他で要素が「.」なら
topは、stackから、取り出したもの
topを、出力して改行する
そして
そして
終わり
「9 9 - 9 9 / .」を、forthする
「9 9 / 9 9 / + .」をforth
「9 9 + 9 + 9 / .」をforth
「9 9 9 + 9 / dup + .」をforth
「9 9 9 + 9 / dup + - .」をforth
「9 dup 9 + 9 + 9 / - .」をforth
「9 9 9 + 9 / - .」をforth
「9 9 9 drop 9 / - .」をforth
「9 9 - 9 * 9 + .」をforth
「9 9 / 9 dup 9 / + .」をforth
「9 9 9 + 9 / + .」をforth
「9 dup 9 9 + + 9 / + .」をforth
「9 9 9 + 9 / dup + + .」をforth
「9 dup 9 9 + 9 / dup + - + .」をforth
「9 dup dup 9 + 9 + 9 / - + .」をforth