昼休みにちょっとScratchやってみよう。派生したものとか昔のとかは触ったことがあったけどよく考えたら本家の最新のは知らないことに気づいた。
ここでアカウントを作ればいいのかな https://scratch.mit.edu/
リストを作る
スタックマシンができた
ネット上の記事で「関数を定義できる」と認識してたけど、値を返さないプロシージャが定義できるだけかな…
abee2: ユーザーが定義したブロックに引数はありますが、返り値はありません(それなので、関数ではなくプロシージャ)。組込関数(両端の丸いレポーターブロック、尖ったブーリアンブロック)は返り値を持ちます。ずっとみんな指摘しているのに導入されないのはScratch七不思議のひとつと言われています。Twitter
メッセージ送受信はできるがメッセージは引数を持てなさそう
リテラルで空白文字入れられない?
length of xにリストを入れてしまったが、リストの長さを取得するのは同じ名前だけど赤いブロック
文字列をパースして足し算引き算ができるようになりました。FORTHのサブセット。
値を返す関数は、値を入れておく変数を用意すれば実現できる
たらい回しをすることもできます笑
ローカル変数がないため「返り値を関数呼び出し後即座に別の変数に入れておく」ができないから、返り値をスタックに積んでおいて必要になった時に取り出すことにした
ローカル変数がない件、正確には「ブロックの中で新たに代入を行うことはできない」であって引数はローカル変数になるから、関数の部分適用みたいなブロックを作るという手もあるか
あとは不定長のリストをプログラムの中で好きなだけ作りたいけど、それに関しては文字列にしちゃう手と、一つのリストの中でリンクトリストを作る手とがあるな。
次の課題は「開きカッコと閉じカッコで構成された文字列が与えられる。カッコが対応しているか判定せよ」で、その次が「S式で表現された計算をせよ」なのかな