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

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

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

SICP始めました 27

SICP27日目

 

問題2.37

 なにをどうすればいいのかがわからずギブアップ

 答えを見てもイマイチわからずじまいです

 

問題2.38

 rightはこんな感じ

( define ( fold-right op initial sequence )
 ( if ( null? sequence )
  initial
  ( op ( car sequence ) ( fold-right op initial ( cdr sequence ) ) ) ) )

 

実行結果

> ( fold-right / 1 ( list 1 2 3 ) )
1 1/2
> ( fold-left / 1 ( list 1 2 3 ) )
1/6
> ( fold-right list ‘( ) ( list 1 2 3 ) )
‘( 1 ( 2 ( 3 ( ) ) ) )
> ( fold-left list ‘( ) ( list 1 2 3 ) )
‘( ( ( ( ) 1 ) 2 ) 3 )

 

opは計算する順序が逆でも答えが同じになるような性質が必要

 

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

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