読者です 読者をやめる 読者になる 読者になる

yy_taroのとりとめのない落書き

メインフレームの導入・設計・構築ができるぐらいの知識があったりする。

SICP始めました 17

SICP十七日目

 

問題2.5

 やっとできた。

( define ( car1 x )
 ( if ( = ( remainder x 2 ) 0 )
  ( + 1 ( car1 ( / x 2 ) ) )
  0 ) )

( define ( cdr1 x )
 ( if ( = ( remainder x 3 ) 0 )
  ( + 1 ( cdr1 ( / x 3 ) ) )
  0 ) )

 考え方はあってた。初歩的な間違いでかなり悩んでいた。

 ( car1 ( / 2 x ) ) と書いていた。これでは、2で割るではなく引数で割っていた。

 これでは、いつまでたってもできないわけだ。

 バグなんてこんなものですよね。

 ちなみに上記の手続きの違いは、割る数が2、3のところのみが違うだけなので、さらに抽象化可能。

 

問題2.6

 ?

 頭の体操。

 途中までは頭の中で追えるものの最後の方になると何をやっているのかわからなくなる。

 

 

計算機プログラムの構造と解釈[第2版]

計算機プログラムの構造と解釈[第2版]