中級その5

こんにちは!このページは「コンピュータサイエンスと魔法のYコンビネータ」という記事の12ページ目です。1ページ目から読むにはこちらからどうぞ

コンピュータサイエンスと
魔法のYコンビネータ

上級その1: 条件分岐の機能

スライド 1 / 10

上級編へようこそ!

中級編では、 悪魔から計算箱の「1を足す機能 」と「1を引く機能 」を返してもらいました。どちらも、弁当箱で再現することができたのです。

1を足す機能
弁当箱で再現
1
に変換できる弁当箱
1
13
2
23
1

1を引く機能
弁当箱で再現
1
に変換できる弁当箱
1
3
2
1
12
2
1
123

他のページをお探しですか?

中級その5·
·上級その2
スライド 2 / 10

繰り返しの機能 」の復習

一方、「繰り返しの機能 」は、まだ返してもらっていません。これを弁当箱で再現できないと返してもらえないのです。


繰り返す

繰り返す

繰り返しの機能 」について忘れてしまった方も多いと思うので、ここで復習をしましょう。

まず、こちらの計算箱をご覧になり、実行 を押してみてください:

結果は になりました。この計算箱は、下の の左側に があるので、 が4回繰り返されるのです。

が4回繰り返される
を計算できました!
スライド 3 / 10

大きな数の足し算や引き算に役立つ

こちらも復習になりますが、ラムダ村の村人たちにとって、計算箱の「繰り返しの機能 」は、大きな数の足し算や引き算をするときに欠かせない機能でした。

繰り返しの機能 」は、大きな数の
足し算・引き算に欠かせない

たとえば、 を計算したい場合、繰り返しの機能を使わないと、 を10回配置する必要があります。

を10回配置

しかし初級その2でもやった通り、 の数が増えると、 の数を間違えてしまう可能性があります。そうすると、正しい計算ができません。

の数を間違えやすい

一方、繰り返しの機能を使えば、 といった計算も、以下のようにシンプルになります。 の数を間違えることもありません。

回繰り返す

このように繰り返しの機能を使えば、 を数え間違えることなく、確実に足し算や引き算を行うことができます。だからこそ、繰り返しの機能はラムダ村で重宝されていたのです。

繰り返しの機能を使えば、
確実に足し算や引き算を行える!
スライド 4 / 10

どうやって再現する?

計算箱の「繰り返しの機能 」を、
弁当箱でどう「再現」する?

ラムダ村の村人たちは、計算箱の「繰り返しの機能 」を 悪魔から返してもらうべく、弁当箱で繰り返しの機能を再現しようと頑張っていました。しかし…

うーん、どんなに考えても、計算箱の「繰り返しの機能 」を弁当箱で再現することができない…

サヤちゃん、何か思いついた?

サヤも、さっぱり分からないなあ…

サヤちゃんでも分からないなんて…もうお手上げだ!

すると、悩んでいる村人たちのもとに、悪魔の助手の ミニオンがやってきました。

みなさん、なかなかお困りのようですね。よければ、ヒントを出しましょうか?

おお、ミニオン!お願いだ、ヒントを教えてくれ!

分かりました、ではまず、計算箱の「条件分岐の機能 」について教えましょう。

条件分岐の機能 」だって?何だそりゃ?

スライド 5 / 10

条件分岐の機能

まず、こちらの計算箱をご覧ください。

条件分岐の機能 」がある計算箱

なんだこれは?

  • 左側に という3種類の印があり、
  • それぞれ が入っている。

それぞれの には数字を入れることができます。同じ数字を入れても構いませんし、違う数字を入れても構いません。

具体例で説明したほうが分かりやすいと思うので、 に何か適当な数字を入れてみてください!

分かった。とりあえず、 上から順に を入れてみたよ。

これで、実行 を押すとどうなるのかな?

を入れてみた

になった!

では、どうしてこうなったか説明しますね!

スライド 6 / 10

真ん中が かどうか

条件分岐の機能 」はまず、真ん中の部分 に入っている数字が かどうかチェックします。

かどうかチェック

真ん中の部分 に入っている数字は なので、 ではないよ。

そうですね。このように真ん中が ではない場合、上の部分 に入っている数字が最終的に残るのです。

ではないので が残ります
に入っていた が残る

なるほど、だから が残るのか!

スライド 7 / 10

クイズ

では、もうひとつ例を紹介します。こちらは、 クイズ にしてみましょう。こちらの計算箱をご覧ください。

質問: これを実行 すると、最終的に以下のようになるでしょうか?

分からなくても大丈夫です!
適当に勘で答えてみてください。

中級その5
プライバシーポリシー · 当サイトについて· Twemoji