程式推導

最大信用問題 — 一個區段問題的例子

給定一個含數字的陣列 A [0.. N), 0 ≤ N. 其中任一個連續區段 [p..q) 的「信用」是其中正數的個數減去負數的個數:

credit p q =〈# i : p ≤ i < q : A i > 0〉-
                 〈# i : p ≤ i < q : A i < 0〉

請推導出一個程式,計算該陣列中「信用最高的區段」的信用,也就是

〈↑ p q : 0 ≤ p ≤ q ≤ N : credit p q〉

計算多項式

我有大約 25 分鐘的時間和同學們介紹函數程式演算. FLOLAC ’10 的同學少部份學過 Haskell 或其他函數語言,大部份只在一週前學了三小時的 OCaml, 寫了一些程式作業,但對 fold 之類的抽象觀念可能還難以掌握。