2つの プログラミング スタイル

Download Report

Transcript 2つの プログラミング スタイル

シェルスクリプト プログラミングスタイル USP 友の会会員 鳥海秀一

自己紹介 • • • • 名前:鳥海秀一 年齢:45歳 職業:プログラマ 所属: USP友の会会員 データベース友の会会員 日本ファシリテーション協会会員 その他

スクリプト言語 としての

シェルの特徴

しょぼい

・多次元配列 ・連想配列(ハッ シュ) ・オブジェクト指向

何がよいの?

良い点その1

2つの プログラミング スタイルを サポート

1つ目

手続き型の スタイル

2つ目

関数型の スタイル

誰が言ってるの?

僕です

(^^;

元ネタ

計算機プログラム の 構造と解釈 (略称 SICP )

Structure and Interpretation of Computer Programs

MITの教科書

プログラムの組織化方法 • オブジェクト準拠の方法 => 手続き型スタイル • ストリーム処理の方法 => 関数型スタイル

2つのスタイルは まるで違います

手続き型スタイル • 計算モデル チューリングマシン • 言語 手続き型プログラミング言語 • 主な操作対象 変数

関数型スタイル • 計算モデル ラムダ計算 • 言語 関数型プログラミング言語 • 主な操作対象 ストリーム

具体例で 説明します

問題 80 個の“ =” で画面に罫線を引け

手続き型スタイル for ((i=0; i<80; ++i)) do printf = done; echo

関数型スタイル yes '' | head -80 | tr \\n = | paste - <(echo) あるいは printf '%80s\n' | tr ' ' =

2つのスタイルを サポートしている言語 ・ Lisp ・ Perl ・ Ruby ・ Python ・ JavaScript ・ Ocaml ・ Scala ・ Clojure

良い点その2

しょぼい

ドナルド・クヌース 曰く

能力を限界まで 圧迫するような

「おもちゃ」の プログラムを 書くことは

非常に有益です

道具立てが 少ないほど

楽しみは多い

具体例で 説明します

時間がないので やめておきます

続きは USP友の会 学習会で \(^ o ^)/

ところで …

問題 80 個の“ =” で画面に罫線を引け

状況によりますが … 一般的にはこう書きます echo "==========…=" 80 個

ご清聴ありがとう ごさいました