2014年5月29日木曜日

Functional Programming Principles in Scala (Week 5: Lists)

==== Lectures ====
Lecture 5.1 - More Functions on Lists (13:04)
:::はListの結合。
++はListの要素をListへ追加。receiverがListだと:::と同じ結果になる。

Lecture 5.2 - Pairs and Tuples (10:45)
pairとは2要素のtuppleの事。
tuppleは_1, _2...でアクセスできるが、pattern matchingを使うのが一般的。
tuppleに対してもpattern matching出来る。
?? 複雑度が高くなってしまう??

Lecture 5.3 - Implicit Parameters (11:08)
型推論は関数の第一パラメータリストを使うので、型が分かっているものを置く。
?? View boundは使っていなかったが、使う方が一般的?

Lecture 5.4 - Higher-Order List Functions (14:53)
map, filter等の説明。
?? place holderを使っていなったのは分かりやすさのため?

Lecture 5.5 - Reduction of Lists (15:35)
reduceとfold。
foldは初期値(accumulator)を別途渡す。
reduceはリストの先頭が初期値になる。
place hold _ の説明もあった。

Lecture 5.6 - Reasoning About Concat (13:00)
structural induction(構造帰納法)
プログラムの正当性を証明するための1手法。
プログラムがある制約を満たすことを示す。
referential transparency(参照透過) であることが重要になる。
(xs ++ ys) ++ zs == xs ++ (ys ++ zs) の証明
xs.reverse.reverse = xs の証明

Lecture 5.7 - A Larger Equational Proof on Lists (9:53)
前のLectureの続き。動画の最後がちょっとだけ切れていた。
map (xs ++ ys) == (map xs) ++ (map ys) の証明

==== Assignments ====
今週はAssignmentsはないらしい。。。

==== Etc. ====
今週はLectureは約90分。Assignmentsがないので何とかなるか。。。
4/27の1週目の開始以降何のAnnounceも無いし、Forumにもinstructorが出てきていない感じがする。
Assignmentsも自動採点のみだし、4回目で枯れてきているので放置気味??

==== Log ====
2014/05/27 00:15 準備
2014/05/27 00:45 Lecture
2014/05/28 00:45 Lecture

0 件のコメント:

コメントを投稿