のような形で、「1から始まり、4まで続くリスト」を表現できると思います。 Groovyでも当然のようにこの書き方が出来るわけですね。
[Haskell-iPhone] First patches for iPhone cross compiler against GHC head Stephen Blackheath [to GHC-iPhone] likeliest.complexions.stephen at blacksapphire.com Mon Mar 19 10:50:55 CET 2012 Previous message: [Haskell-iPhone] GHC 7.4.1 support? Next message: [Haskell-iPhone] iPhone demo Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] All, Here are some rough patches that create a GHC-
最近のHaskell 最近はHaskellに関するブログ記事をちらほら見かけるようになって来ました。 日々のスクリプトに使おうとしようという人もいるようで、 http://d.hatena.ne.jp/aya_eiya/20120221/1329836207 このようなブログ記事を見かけました。 Haskellで書いたらそんなに汚いコードにはならないというのはたしかにあります。 やってはならないということがHaskellには比較的少ないのだと思います。 というのも、Haskellでは、やってはいけないことがそもそもできないようになっているか、 やることが極めて難しくなっている(unsafeプリフィックスを持つ関数を駆使したりなど) ことが多いのです。 しかし、そんなHaskellのプログラムも、少し工夫すればもっと良くなることもあります。 列挙問題 先ほどのブログの記事の1つ目のプログラム
関数が値を返さないかもしれないときには Maybe型を使います。 tList =[("Perl","Larry Wall"),("Ruby","Matz"),("C","Dennis Ritchie"), ("Fortran"," John Warner Backus")] mLookup :: String -> [(String,String)] -> Maybe String mLookup string ((key,dat):xs) | string == key = Just dat | otherwise = mLookup string xs mLookup _ [] = Nothing mFind :: String -> [(String,String)] -> String mFind str ls = case mLookup str ls of Just s ->
Hey yo! This is Learn You a Haskell, the funkiest way to learn Haskell, which is the best functional programming language around. You may have heard of it. This guide is meant for people who have programmed already, but have yet to try functional programming. The whole thing is completely free to read online, but it's also available in print and I encourage you to buy as many copies as you can aff
Haskell のリスト内包表記はとっても便利です。あまり意味がないのですが、よく出される例は、こんな感じです。 [(x,y)|x<-[1,2],y<-[3,4,5]] → [(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)] このように、このリスト内包表記は、あたかも二重のループであるかのように動きます。 リスト内包表記は、実は糖衣構文であり、do に直すと以下のようになります。 do x<-[1,2] y<-[3,4,5] return (x,y) → [(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)] 僕は、この意味をずっと理解できませんでした。 "<-" は、モナドという箱の中から、中身を取り出します。たとえば、Just "str" から中身を取り出すと "str" となるように、Maybe モナドを理解するのは簡単です。 でも、リスト
0. 目次 継続を理解するには「継続渡しスタイル(CPS)」から 足し算、かけ算、引き算 階乗 木の葉の数を数える フィボナッチ数 リストの平坦 foldr (畳み込み関数) 1. 継続を理解するには「継続渡しスタイル(CPS)」から 「All About Monads」の Continuation モナド が理解できない。特に callCC 関数の定義。 callCC f = Cont $ \k -> runCont (f (\a -> Cont $ \_ -> k a)) k うーん、わずか一行なんだけれど… (+_+) callCC を含め、継続モナドを理解するための前提が次のように書かれている。 Continuation モナドを使う前に継続渡しスタイル(CPS)について確実に理解しているか,自身の設計課題について継続が最良のソリューションなのかを確認してください.他の言語では継続
皆さんはプログラムが正しく動作することをどうやって調べていますか? いちいち実行して確認している人もいるかもしれませんが,多くの人はツールや自作のプログラムを使って何らかの形でテストを自動化しているでしょう。ここ10年くらいで「テストの自動化」はプログラマにとってなじみの深い概念になりました。今回はHaskellでのテストの自動化を取り上げます。 型検査を利用する 実は,Haskellを使っていれば,すでにテストはある程度自動化されていると言えます。 第12回と第13回で説明したSTMでは,STMモナドという特別なモナドを使い内側にI/Oアクションを記述できなくすることによって,取り消し不可能なアクションが入り込むことを防いでいました。 Prelude Control.Concurrent.STM> atomically (writeFile "sample.txt" 12) <inter
Fun of Programming (Cornerstones of Computing)の3章「Origami programming」の冒頭にはこんな事が書かれている。 One style of functional programming is based purely on recursive equations. Such equations are easy to explain, and adequate for any computational purpose, but hard tu use well as programs get bigger and more complicated. In a sense, recursive equations are the 'assembly language' of functional programming, and
Haskell 初心者は括弧ばかりの Lisp のようなコードを書く。中級者になると、($) が多くなる。上級者(言い過ぎか?)になると、($) が消えて、(.) が多くなる。この記事では、上級者になるコツをちょっと教えちゃおう。 括弧だらけのコード では、以下の例について考えよう。 foo p xs = sum (filter p (map (+1) xs)) 括弧が多くて、いかにも初心者が書いたコードだ。foo は、以下のように動く。 foo even [1..6] → 12 ($) を使う では、括弧を ($) に置き換えてみよう。そうするには、一番右側にある閉じ括弧を消して、対応する開き括弧を ($) に置き換えればよい。だからこうなる。 foo p xs = sum $ filter p $ map (+1) xs だいぶ見やすくなった。 (.) を使う map (+1) xs
Welcome to Hoogle Links Haskell.org Hackage GHC Manual Libraries Hoogle is a Haskell API search engine, which allows you to search the Haskell libraries on Stackage by either function name, or by approximate type signature. Example searches: map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Set.insert +bytestring concat Enter your own search at the top of the page. The Hoogle manual contains mor
Haskellは関数型言語であり、他のプログラミング言語を触ったことのある読者なら、Haskellのやり方は他の言語とは多少異なっていることが分かるでしょう。 Haskellの独自性は二つあります。一つは、「純粋」関数型言語であることです。純粋関数型言語では、同じ関数を同じ引数で呼び出した場合、必ず同じ戻り値になることが保証されます。二つ目は、Haskellが極めて現代的な型理論を備えていることです。Haskellでは、型クラスや代数的データ型などの型を扱うことができます。これらの難解な概念は、今は全く理解できないかもしれませんが、この本を読み終えた後には、より身近なものに感じられるでしょう。 さて、Haskellerたちはこの言語のどこに魅力を感じているのでしょうか。ユニークで新しい感覚を得られるからでしょうか。しかし、Haskellの最も優れた性質は、純粋関数のみによって書かれているこ
ZVON > References > Haskell reference Intro / Search / ZVON | Indexes | Syntax | >> Prelude << | Ratio | Complex | Numeric | Ix | Array | List | Maybe | Char | Monad | IO | Directory | System | Time | Locale | CPUTime | Random Module: Prelude Function: all Type: (a -> Bool) -> [a] -> Bool Description: returns True if all items in the list fulfill the condition Related: (&&), and, any, elem, not, n
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く