04. SNAP!でオブジェクト指向(3/2)
予定を変更して、今回もSNAP!に取り組みます。
テーマ:
リスト処理
高階関数
言語機能の拡張。プロトタイプベースのオブジェクト指向機構をSNAP!に実装する。
P.27 A . The list block
リストの要素
リストのリスト
リストの長さ
リストを扱うブロック
利用例)
母音を判定するカスタムブロックの作成 あ い う え お をリストで用意。リストに引数が含まれるか判定。
テーブル(表)を利用して、オブジェクトのメソッドとデータを管理する。
assocは、ファイルメニューのライブラリー から リスト処理ライブラリーを読み込めば、作成せずに済む。
P.30 D. Higher Order List Operations and Rings
リストを処理する高階関数
高階関数とは: 関数やプログラム(クロージャ)を引数として受け取ることができる関数。
ファイルメニューの ツールを読み込む でリスト処理関係の外部定義ブロックを使用可能にする。
フィルター処理の例)
数値リストから、偶数だけ残す
map関数
リストの要素を1つずつ(関数やプログラムで)処理して結果を求める。求めた結果をまとめて新しくリストを作成する。
あるリストを変換した別のリストを作成する関数。
P.49 Object Oriented Programming
P.50 A. Local State with Script Variables
プログラムを値として返すプログラム
SNAP!の課題(3/2回目) として保存したファイルをWebclassに提出。