プログラミング言語論 第6回 11/10

Programing Language

はじめに

前回おさらい
  1. クラスの階層構造と、それに関連して、マニュアルの構成や読み取り方について学んだ
  2. 文字列操作の例題について、a~eのうち

逐次的プログラミングの実例(参考)

引数(英語)

補足1 メソッドの呼び出し方(追加説明)

補足2 ブロックつきメソッド呼び出しについて


3 プログラムの発展:文字列の操作 つづき

オブジェクトの変形経路

(それに先立って)練習2

前回残した練習課題

e 各文字を3つずつ重ねて出力
map 例:

hello   ->  hhheeellllllooo
コードにする過程

(以下のように進めていく) 変形経路

s="hello"
s.split(//)
s.split(//).map{|c|c*3}

(各自完成させてみて下さい)

参考

参考1 (ruby などのスクリプト言語での)ダブルクォート シングルクォート の違いについて

参考2 条件演算子

条件分岐に関して、if式

if ... then ... else ... end

に代わって、

...  ?   ...  :   ...

という記法も使える(条件演算子

参考3 [ ] 四角い括弧(ブラケット)の使われ方

参考4 マニュアルの読解

sep

参考5 最近の動向(の1つ):多重代入

実は、先に別ページで提示した「reverse的メソッド」の考え方Ⅰのプログラム例には、 右図のようなパターン(rubyでは多重代入。他の言語では分割代入、平行代入などの呼び方がある) のコードが含まれている。
これは最近の言語で普及してきた機能で、 このパターンで2つの値を1つの = 記号で交換することができる (前回の待避線に喩えた解説は実際には古い言語での常識という話であった)。

宿題

  1. 練習1(rev.rb) をやってみる (余力のある人、興味のある人、取り組んでみて下さい)。
  2. 前回残した練習課題e (hello->hhheeellllllooo) を(資料を参考に)完成させてみて下さい。

なお、様々なメソッドの実演例1実演例2のページも参照して、内容を復習しておいて下さい。