ProgrammingのTipなど

高階関数

Schemeでは何らかの繰り返し処理を扱うには
高階関数を使うか再帰を使うのが一般的です
map関数
リストの全ての要素にある関数を作動させます
(map 関数 リスト)
リストar1を作成して
リストar1の各要素が偶数かどうかを判定する例
even?は数が偶数かどうかを判定する関数です
(define ar1 (list 2 8 10))
(map even? ar1)
>>'(#t #t #t)
高階関数にはラムダ関数をわたすこともできます
リストar2の各要素を2倍にしたものを返す例
(define ar2 (list 3 5 6))
(map (lambda (x) (* x 2)) ar2)
>>'(6 10 12)
filter関数
リストの要素の中で条件に合致するものだけを選んでリストとして返します
(filter 関数 リスト)
リスト内の要素の奇数だけ選んでリストにして返す例
odd?は奇数かどうかを判定する関数
(define ar3 (list 1 2 3 7 8 9))
(filter odd? ar3)
>>'(1 3 7 9)
for-each関数
リストの各要素に関数の処理を行います
(for-each 関数 リスト)
リスト内の要素の奇数だけ選んで表示する文
(define ar1 (list 1 2 3))
(for-each display (filter odd? ar1))
>>1 3

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます