続きです。色々と組み込み関数が出てきました。てっきりCARとCDRとCONSとIFだけでなんとかするパズルみたいな言語なのかと思ったよw
![](https://blogimg.goo.ne.jp/user_image/27/55/e070104dec244eba0b4ebe4db237b397.png)
末尾再帰での書き換えか・・・一体どう違うのかよく分かってないので実行環境を入れたら色々とサンプルを試してみよう
![](https://blogimg.goo.ne.jp/user_image/34/30/466eaa96c787b2e8b859e59c61d015ac.png)
あ、これは分かりやすいな。再帰部分に関数を置いて、1つ目に進める処理を入れて2つ目をカウンターにしてるって事・・だよね?
![](https://blogimg.goo.ne.jp/user_image/05/1e/98a70293a06e60945fac2bf239b4409f.png)
おっ!
![](https://blogimg.goo.ne.jp/user_image/5c/01/5b1956e89e74b0a3f9dbf1c9b8f6ed87.png)
![](https://blogimg.goo.ne.jp/user_image/03/f0/3bf7445fba518ec82585469aed65f4b1.png)
おお~!ここまでは分かる
![](https://blogimg.goo.ne.jp/user_image/44/0b/865e60f9939b3bf5cf266fb673f7d946.png)
なんかお馴染みのInputからの変数に入れての判定パターン来たか~。けど、なんでCondで#tを返したら抜けられるんだ?明日調べよう!
![](https://blogimg.goo.ne.jp/user_image/07/2b/fe489ebe737f57b07072911888fa01b8.png)
そしてまさかの練習問題なし!だから今日は1日に2回も書いたんですね!
![](https://blogimg.goo.ne.jp/user_image/43/5b/f32a8e54cff8a47aa3297ada67801f5d.png)
その代わりにオマケで豊富な解説。まずAの部分・・うーん、空のリストを用意すれば良いのでは?とボンヤリ思う
![](https://blogimg.goo.ne.jp/user_image/6a/e0/472ee931eac99ca576aac09b3d03be5f.png)
合ってるやん!けど()で表現するのか・・気づかんかった。で、Cか・・consでcarを足してったらええんでないの?
![](https://blogimg.goo.ne.jp/user_image/24/08/de5c145f03b8d13f8592654c5d75e495.png)
うお!当たった!
![](https://blogimg.goo.ne.jp/user_image/4e/a2/c32dd1fa879a28a64679f33655730604.png)
更にオマケの解説・・・あ、これだ!ネットの他のページで見たリストの結合の問題。第1引数の最後に入ってる空リストを第2引数と置き換える・・?どういうこっちゃ・・・Consは第2引数の頭に第1引数をつなげるんじゃなかったか・・ああ、時間がない。後は色々と試してみるぜ
![](https://blogimg.goo.ne.jp/user_image/45/f8/19d2e97ec66cf59554898298b70d0cba.png)
このScheme実行環境「DrRacket」でな!これこれ!こういうエディタ式のが欲しかったのだ!最初見つからなかったのでLINUXをUSBブートで入れようかと色々と余計なことまでやってしまった(PuppyLinuxでブータブルUSBを作ってWifiつなぐところまでやった・・けど起動が異常に遅いので中止)。