1、抽象和模塊化大幅提高生產力
2、FP中函數是First-class elments,抽象能力進一步增強
由上,要進一步提高生產力,請學習FP
-- 一個經典的菲波納契數列的函數定義,求每一個位置上的數值fib 1 = 1fib 2 = 1fib n = fib(n-1) + fib(n-2)-- 產生一個無限長的fib數列fib_l n = fib n : fib_l(n+1)
用ghc編譯時加上:-optl-mwindows 參見: http://comments.gmane.org/gmane.comp.lang.haskell.gtk2hs/1984
http://sourceforge.net/projects/gtk2hs/ ghc-6.10.3-i386-windows.exe gtk2hs-0.10.1-win32-installer.exe
-- file: knapsack1.hs maxVal [] [] _ = 0 maxVal (w:ws) (v:vs) aW = if w > aW then without_it else max without
安裝 HDBC-Sqlite3 $ cabal install HDBC-Sqlite3 Installed HDBC-sqlite3-2.3.3.1 Prelude> :m Database.HDBC Database.HDBC
Divisible class Contravariant f => Divisible f where divide :: (a -> (b, c)) -> f b -> f c -> f a conquer ::
手動計算 set mapped 5 [1,2,3] set l b = runIdentity . l (\_ -> Identity b) mapped = sets fmap sets f g = taintedDot (f
Prisms {-# LANGUAGE TemplateHaskell, RankNTypes #-} import Control.Lens data NewTask = SimpleTask String | Ha
Yesod Yesod 是一個使用 Haskell 語言的 Web 框架。 安裝 Yesod 首先更新 Haskell Platform 到最新版 (Yesod 依賴的庫非常多,版本不一致的話很容易安裝失敗) $ cabal i
盒子裏的計算 如果我們要運算1+2的話我們直接寫:1+2,這樣就會返回結果3. 但是,如果我們要計算列表裏面的數值怎麼辦呢? 例如: 我們想計算 [1] + [2],我們希望haskell能計算出的結果是[3],這時候<*>與<$
inject 一般寫法: Java代碼 result = [] (1..10).each{|item| result << item} result = [] (1..10).each{|item| result << it
登陸窗口的代碼:login:function() { var loginWait = Ext.Msg.wait("正在登錄,請稍候...
所謂魚與熊掌不可兼得,所有的收穫都需要付出艱辛的努力。學習任何語言都是這樣。很多年了,心得頗多,收穫全無。細想之下,還是覺得自己沒有能夠把語言作爲一種切切實實表達思想,輔助工作的工具。進而產生生產力。任何廣義上的編程語言,他們
Active pattern 是什麼 簡單的來說是一種數據類型的轉換方式。同一般的類型轉換相比,實質相同,形式卻異常豐富。要知道有時候,並且大多數時候形式是大於實質的。Active pattern常被用來將輸入數據進行分類,也就是說輸入一
利用fsharp構建文件結構。 open System.IO type FileUnit = | Empty | File of string * FileAttributes | Directory of