モナドって結局何なのよ?¶ Haskell を勉強しようとすると必ず「モナド」ってのが出てきます。困ったものです。数学とか圏論とか関係があるらしくって、何が書いてあるんだか分からなくって嫌になってしまいます。でもね、Haskell って凄いらしいじゃないですか、格好良いらしいじゃないですか。ここはちょっとがんばって色々考えてみましょう。 そもそも Haskell って何なのよ?¶ 何なんでしょうね、Haskell って。コンピュータ言語らしいんです、あ、それは分かってると。良く挙げられる性質は次な感じ?: 関数型言語 強い型付け 遅延評価 参照透過 ここでちょっと型に関して見てみましょう。試しに Haskell の実装の 1 つである Hugs で 1 について考えてみます: $ hugs __ __ __ __ ____ ___ _____________________________
さて、今日は、いつもとは違ったことを紹介しよう。 Haskellのプログラムをちょこちょこ紹介していたが、今日は、世界に飛び出してみよう。 つまり、日本以外、世界ではHaskellでどんなことをしているのだろうか。とくに、大学などで、Haskellをどのように教えているのか見てみよう。 まず、Haskellをやる以上、かならず見るべきサイトがある。 The Haskell Programming Language (www.haskell.org) うまく表示されないときは、新しいタブ・新しいウィンドウに表示させるようにしてみてください。 そして、いままで使ってきたのがGHCなのだが、このGはグラスゴー大学のGなのだ。 ということで、グラスゴー大学で探すと、Functional Programming Research at Glasgowがすぐに見つかったが、文字情報はいっぱいあるものの
C vs Python vs Ruby vs Haskell(ナンバリングdeベンチマーク) を勝手に添削。 今回は話題的に最適化するにはバイトIOにするとか出てきて面倒なので省略して、 Pythonic にするだけ。 元のコードは import sys argvs = sys.argv del argvs[0] for i in range(len(argvs)): print(argvs[i]) fin = open(argvs[i], 'r') a = 0 for line in fin: a += 1 print(a, line, end = '') print("\n") fin.close() これを Pythonic にしていきます。 Linuxでは open() が utf-8 でファイルを開くので、とりあえず青空文庫のテキストファイルに合わせて 'cp932' を指定.
前回の記事が一応の決着を見せたので、次に行こうと思います。 私が思ったよりもHaskellがずっと速かったようで、Haskellは実用的な言語ではないと言う風潮を払拭すると言う目標の前途は明るそうで何よりです。 さて、今回のお題はファイルを読み込んで、行毎に数字を割り振っていくナンバリング処理です。 Linux等のUNIX系OSではcatと呼ばれる便利なコマンドでファイルの中身を表示するだけでなく、オプションで指定すればナンバリングも出来る訳ですが、Windowsでのcatコマンドに対応するtypeコマンドは、ファイルの内容を表示する以外の機能を持ちません。 そこで、numberingコマンドを作ってしまえ!と言うのがHaskellでこのコマンドを作った発端なのですが、ついでにこの間の言語でも作ってみました。 そして、今日はmethaneさんから教えて頂いたスーパーpre記法とやらを使って
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く