読み解き PiS3

読み解き PiS3: Higher Order Functions を使って複数ファイルの一括処理を行う

9.4 WRITING NEW CONTROL STRUCTURES を読んでいて、複数ファイルに対して「ファイルを開いて特定の処理を行う」ことができるはずと思って実装した。Scala でメソッドをメソッドの引数に取るのは HOF(Higher Order Functions) というらしい。 C でいう関数ポ…

読み解き PiS3: ケースシーケンスの実体は関数リテラルである

A sequence of cases (i.e., alternatives) in curly braces can be used anywhere a function literal can be used.Essentially, a case sequence is a function literal, only more general. Instead of having a single entry point and list of paramete…

 読み解き PiS3: ケースクラスのパターンマッチング(Constructor パターン)

case class は abstract class の派生でなくてもいい。コップ本だと Expr の派生クラスとして UnOp や BinOp クラスを定義しているが別に親がいなくてもいい。 パターンマッチのブロックの中の e はパターンに束縛される一時変数。「この e はどこから出てき…

読み解き PiS3: def の後のイコールのありなし

def の後の body の前に = を置かない場合と置く場合の違いが気になっていた。 = を置かない場合はメソッド/関数の戻り値は Unit になる。 = を置く場合はメソッド/関数の戻り値を任意に指定する。 The equals sign that precedes the body of a function hi…