シェルスクリプト プログラミングスタイル
DESCRIPTION
シェルスクリプト プログラミングスタイル. USP 友の会会員 鳥海秀一. 自己紹介. 名前:鳥海秀一 年齢:45歳 職業:プログラマ 所属: USP友の会会員 データベース友の会会員 日本ファシリテーション協会会員 その他. スクリプト言語 としての. シェルの特徴. しょぼい. ・多次元配列 ・連想配列(ハッシュ) ・オブジェクト指向. 何がよいの?. 良い点その1. 2つの プログラミング スタイルを サポート. 1つ目. 手続き型の スタイル. 2つ目. 関数型の スタイル. 誰が言ってるの?. 僕です (^^;. 元ネタ. - PowerPoint PPT PresentationTRANSCRIPT
シェルスクリプトプログラミングスタイル
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 個
ご清聴ありがとうごさいました