现在是2008-12-05 18:53:02,查看已提交项目、已收录的Blogs或者公司信息
请登录添加新项目、加入项目、点评别人的项目,或者 新注册? 提交Bug反馈.
iTechTag beta..
技能声望创造无限价值..
[Haskell筆記]cons
阅读10次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-12-01很多情況下,我們通過在舊的(已經構造好的)list上增加新成員來構造一個新的list。在Haskell中,我們稱這為把成員cons到list上。我們使用“:”這個控制符來表示這個操作。 Prelude> let numbers = [1,2,3,4] Prelude> numbers [1,2,3,4] Prelude> 0:numbers [0,1,2,3,4] cons所得的結果仍然是一個list,所以我們可以繼續cons成員上去。例如: Prelude> 1:0:numbers [1,0,1,2,3,4] Prelude> 2:1:0:numbers [2,1,0,1,2,3,4] Prelude> 5:4:3:2:1:0:numbers [5,4,3,2,1,0,1,2,3,4] 事實上,listnumbers本身(即[1...
[Haskell筆記]list
阅读15次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-30函數是構建Haskell程序的兩大基本部件之一,另一個則是list(列表)。 list的表示方法很簡單,首先列舉list的各成員,然後以“,”分隔各成員,最後用“[”和“]”標記list的開頭和結尾。比如,[1,2,3,4]。 為了便於以後的稱說,我們通常給list“起個名字”(指定一個符號代表它),例如: Prelude> let numbers = [1,2,3,4] Prelude> let truths = [True, False, False] Prelude> let strings = ["here", "are", "some", "strings"] 特別要當心的是,list中的成員必須擁有相同的類型。在上面的三個例子中,numberslist的成員都是Integer(整數),truthslist的成員都是Bool(布爾值),stri...
[Haskell筆記]函數定義中使用函數
阅读18次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-27定義函數時,可以使用其它已經定義好的函數。比如,求正方形的面積。正方形是矩形的一個特例,所以定義求正方形面積的函數時,可以利用求矩形面積的函數。 Prelude> let areaRect l w = l * w Prelude> let areaSquare s = areaRect s s 練習 5.1 利用areaSquare求邊長為5的正方形的面積。5.2 寫一個求圓柱體體積的函數(利用求圓面積的函數)5.3 寫一個函數解決以下問題:給定圓的半徑,且已知有一正方形的邊長和該半徑相等,求該圓與該正方形面積之差。 答案 4.1 areaTriangle b h = (b * h) / 2 4.2 areaCube l w h = l * w * h
[Haskell筆記]多元函數
阅读14次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-18上次我們討論了求圓面積的函數,即 f r = pi * r ^ 2 這裏f代表function(函數),表達的信息量很有限。如果我們的程序裏有很多這樣的函數,就很不方便。你得讀完整行纔知道這是一個求圓的函數。為了增加可讀性(或者說方便偷懶,不用讀完函數的整個定義就知道函數是幹啥的),寫成類似以下的形式好一些: areaCycle r = pi * r ^ 2 好了,求了圓的面積,求了圓的周長(練習3.1),下面我們來求矩形的面積areaRect。和圓不一樣,長方形的面積取決於長和寬。那該怎麽寫呢?很簡單,以空格隔開,依次列出就可以了。 Prelude> let areaRect l w = l * w 那麽,長為5,寬為10的矩形的面積為: Prelude> areaRect 5 10 50 練習 4.1 寫一個求三角形面積的函數。4.2 寫一個求長方體體積...
拼音有的时候会起干扰作用
阅读14次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-18例子很多,只举一个,xiong,看上去是齐齿呼,其实是撮口呼。
山寨硬盘盒
阅读14次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-18送了一把螺丝刀。问题在于这把螺丝刀和硬盘盒上的螺丝不匹配。
[Haskell筆記]函數
阅读15次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-17引入了符號這個概念後,計算圓的面積輕松多了。 Prelude> pi * (5 ^ 2) 78.53981633974483 Prelude> pi * (25 ^ 2) 1963.4954084936207 可不可以再偷點懶呢?當然可以,每次計算圓面積的時候,僅僅換了半徑的值而已,每次都重復輸入圓面積公式,太麻煩了。這就要用到函數了。 在圓面積公式 s = pi*r^2 中,每次改變的只是r。那麽,可以認為s是r的一個函數,即 s=f(r)=pi*r^2 上述函數,在Haskell中這樣表達: f r = pi * r ^ 2 和數學上的表達方式很相似,只是用空格代替了環繞自變量(在Haskell中稱為parameter)的括號而已。 值得注意的是,y=f(x)這樣的表達在Haskell中不成立。比如,如果你嘗試用s來代表求圓面積的函數: Prelude&...
bash中正則的反向引用
阅读10次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-17例子:輸入abcd123,輸出abcd sed是這樣的: s/\([a-z]*\).*/\1/ perl中是這樣的: s/([a-z]*).*/$1/ 不知道Bash中是否也有類似的緊湊的寫法。一個比較冗長的寫法是這樣的: i='abcd123' re='([a-z]*).*' [[ $i =~ $re ]] echo ${BASH_REMATCH[1]}
嘗試高橋流
阅读11次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-16用Openoffice.org Impress做了個高橋流的簡報。(其實是偽高橋流,正宗高橋流字體更大,圖片比較少。) Records of the Grand Historian.
[Haskell筆記]符號
阅读11次,收藏0次,顶0次,踩0脚 | 订阅者:weakish | 来源:Millenniumdark | 文章作者: | 发表时间: 2008-11-16在上一節中你已經做了不少算術題吧?再來一道何如? 求半徑為5cm的圓的面積。 圓面積公式為s = πr2,所以我們在GHCi中輸入: Prelude> 3.14 * 5^2 78.5 答案是78.5平方厘米。這裏,我們取pi=3.14。我們可以把pi的近似值可以取得更精確些,反正是電腦替我們算。 Prelude> 3.14159265358979323846264338327950 * (5 ^ 2) 78.53981633974483 計算了面積,不妨再算一下這個圓的周長: Prelude> 2 * 3.14159265358979323846264338327950 * 5 31.41592653589793 如果,圓的半徑是25,那面積又是多少呢? Prelude> 3.14159265358979323846264338327950 *...
Millenniumdark基本信息
该用户的其他内容
-
[Haskell筆記]cons
来源:Millenniumdark | 作者: | 发表: 2008-12-01
很多情況下,我們通過在舊的(已經構造好的)list上增加新成員來構造一個新的list。在Haskell中,我們稱這為把成員cons到list上。我們使用“:”這個控制符來表示這個操作。 Pre...
-
[Haskell筆記]list
来源:Millenniumdark | 作者: | 发表: 2008-11-30
函數是構建Haskell程序的兩大基本部件之一,另一個則是list(列表)。 list的表示方法很簡單,首先列舉list的各成員,然後以“,”分隔各成員,最後用“[”和“]”標記list的開頭...
-
[Haskell筆記]函數定義中使用函數
来源:Millenniumdark | 作者: | 发表: 2008-11-27
定義函數時,可以使用其它已經定義好的函數。比如,求正方形的面積。正方形是矩形的一個特例,所以定義求正方形面積的函數時,可以利用求矩形面積的函數。 Prelude> let areaRe...


