タグ

haskellに関するInoHiroのブックマーク (19)

  • 継続モナドによるリソース管理 - Qiita

    継続モナドって何に使うんだ問題に対する一つの例。 リソース管理の問題 プログラミングをやっていると必ずまとわり付いてくるのがリソース管理の問題です。ここで指すリソースというのは、ファイルのハンドルだとか、ソケットだとか、排他処理のためのロックだとか、グラフィックのハンドルだとかそういう話で、GCのない言語だとメモリの管理もこれに含まれるでしょうか。 言うまでもなく、リソースを確保した後はしかるべきタイミングで確実に解放してやる必要があります。しかし往々にして、現実のプログラムではリソースの解放漏れが発生してしまいます。単に解放するコードを書き忘れると言うのが一番単純でしょうもない理由ですが、それでも、C言語のようにリソース解放のための特別な仕組みを持たない言語では、これを徹底するのも結構骨の折れることだったりします。それはともかく、もう少し高尚な悩みとしては、例外との組み合わせで発生する解

    継続モナドによるリソース管理 - Qiita
  • 48時間でSchemeを書こう - Wikibooks

    Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch

    InoHiro
    InoHiro 2014/07/10
    やろう
  • GitHub - chrisdone/hell: Haskell-based shell scripting language

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - chrisdone/hell: Haskell-based shell scripting language
    InoHiro
    InoHiro 2013/11/23
    地獄...
  • HakyllとpandocとMighttpdでサイトを作った話 - 純粋関数空間

    このページについて ページのフッタに書いてあるので、お気付きの方もいらっしゃるかと思いますが、 このページは Hakyllと Pandocと Mighttpdにて運用されています。 完全なソースコードを https://github.com/tanakh/tanakh.jp から参照できます。 HakyllとはHaskellによる静的ページ生成ツールで、 Jekyllにインスパイアされて作られたものだそうです。 JekyllがRubyによって書かれ、Rubyによってページの構造を記述するのに対して、 HakyllはHaskellによって書かれ、Haskellによってページの構造を記述します。 Pandocとはいろいろなドキュメントフォーマットのコンバータです。 Haskellで書かれています。さすがにもうHTMLを手で書きたくはない、 かついろいろなブログの独自のフォーマットなんて覚えてい

  • Haskell Day 2012に行ってきました - still deeper

    Haskell Day 2012 「すごいHaskellたのしく学ぼう」の発売を記念して開催されたHaskell Day 2012に参加してきました。 発表の内容は入門から応用まで、笑いもあれば学術研究のガチ発表まで多岐に渡っており、まさにHaskell尽くしの一日でした。 感想 Haskellのイベントにも関わらず(と言っては失礼ですが)180人近くが集まる大規模なイベントでした。Haskellの存在感は日毎に増しているようです。 しかし、個人的な感触ですが、@Lost_dog_さんの発表にありましたが、Haskellは近頃の注目度に反して実用レベルのコードを書いている人はあまりいないように思います。(私が正にそうなのですが、、、) 今回の発表ではGlossやYesodのライブコーディングやPersistentの紹介、(私は理解できませんでしたが)学術的な利用など、実践に近い発表も多く、

  • 高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)

    IIJ-II技術研究所では、2009年の秋からMighttpd(mightyと読む)というWebサーバの開発を始め、オープンソースとして公開しています。この実装を通じて、マルチコアの性能を引き出しつつ、コードの簡潔性を保てるアーキテクチャにたどり着きました。ここでは、各アーキテクチャについて順を追って説明します。 ネイティブ・スレッド 伝統的なサーバは、スレッド・プログラミングという手法を用いています。このアーキテクチャでは、1つのコネクションを1つのプロセスかネイティブ・スレッドが処理します。 このアーキテクチャは、プロセスやネイティブ・スレッドを生成する方法で細分化できます。「プール」方式では、あらかじめ複数を起動しておきます。例としては、Apacheのpreforkというモードが挙げられます。「都度」方式では、コネクションを受け取るたびに生成します。このアーキテクチャの利点は、制御を

    高速WebサーバMighttpdのアーキテクチャ | IIJの技術 | インターネットイニシアティブ(IIJ)
  • すごい Haskell たのしく学ぼう!は本当にすごいのか? - ぐるぐる~

    すごいHaskellたのしく学ぼう! 作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行(ソフトカバー)購入: 19人 クリック: 552回この商品を含むブログ (36件) を見る 今話題の、すごい Haskell たのしく学ぼう!を読んだのですが、ちょっと思ったことがあるので書評と合わせて書いておきます。 思ったこと 関数型言語がこれほど話題になるのはとても嬉しいことです。 しかし、一方で懸念点もあります。 ノリで「すごい」とだけ言う人たちがいる その人たちに乗せられて (自分には合わないのに) 買ってしまって、挫折してしまう人が出てきそう このは、いいです。 翻訳の質も素晴らしく、読んでいて「読みにくいな」と思った部分はありません。 それに加え、訳注と Appendix も素晴らしい。 しかし、誰にで

    すごい Haskell たのしく学ぼう!は本当にすごいのか? - ぐるぐる~
  • すごいHaskellたのしく学ぼう! | オーム社eStore(β)

    Haskellの達人たちが推薦する楽しい入門書 丁寧な解説とポップな例題で物のHaskellプログラミングを習得できる入門書。 原書の“Learn You a Haskell for Great Good!”は、型、遅延評価、モナドといった難しい概念にも自然に慣れていけるよう工夫された構成、他の言語経験者への配慮に加え、原著者による楽しいイラストによって、もっとも分かりやすいHaskellとして、高く評価されています。 このような方におすすめ プログラマー Haskell入門者 Haskellを実用的に学びたい人 関数型言語に興味のある人 書籍(紙版書籍): 2,800円 + 税 PDF版書籍データ: 2,240円 + 税 コンボパック: 4,200円 + 税

  • 第50回 並列プログラミングにおける抽象化と細かい制御のトレードオフ

    Haskellは遅延評価を特徴としています。しかし,どのような機能にも弱点はあります。第9回や第47回では,遅延評価自体が持つ弱点や,その問題を解決しようとした際に生じる問題点について解説しました。 同様に,並列Haskellやデータ並列Haskellといった,GHCで提供されている並列処理の機能にも弱点があります。また,その問題を避けるために開発されたライブラリにも,相応の弱点があります。 並列Haskellが提供する並列処理機能の抽象化能力は極めて強力ですが,抽象化され過ぎていて並列処理の制御が難しいという問題があります。一方,より低レベルの並列処理機能は,並列処理を直接制御できるものの,並列処理の抽象化能力が乏しく,大規模なプログラムを並列化するのは困難です。 このように,現在のHaskellの並列処理機能は,理想的とはいえません。高速な並列プログラムをなるべく短期間で作成するには,

    第50回 並列プログラミングにおける抽象化と細かい制御のトレードオフ
  • Haskellプログラミングの楽しみ方 − @IT

    第1回 Haskellプログラミングの楽しみ方 山下 伸夫 株式会社タイムインターメディア 2008/10/29 関数型言語に分類されるHaskell。C言語などの手続き型言語とまったく異なるプログラミングの世界に踏み出してみよう(編集部) 連載は、Haskellプログラミングの初歩から始めて、日常的なスクリプティングやWebプログラミングをHaskellで楽しめるようになるまでのガイドである。 Haskellプログラミングのスタイル Haskellプログラミングに興味はある人でも、Haskellプログラミングの習得にはちょっとした障壁を感じることがあるのは間違いないようだ。小難しい概念や用語のせいでもあるが、それらはあまり重大な理由ではない。 障壁となるのはHaskellのプログラミングスタイルである。Haskellのプログラミングスタイルは関数プログラミングという系統に属する。一方、

  • タダで読めるHaskell本。5冊。 - このブログは証明できない。

    少し前にHaskellのを買いました。Haskellのを買ったりスシをべたりしていました。でも、iPhoneアプリ開発が忙しくて、ほとんど読んでいません。スシはべましたけど。 タダで読めるHaskellの参考書が紹介されています。 5 Free E-Books on Haskell 参考書の前に。ブラウザ上で試せるインタラクティブなチュートリアル。これ、いいですね。 Try Haskell! An interactive tutorial in your browser Learn You a Haskell for Great Good。 これ。このを買いました。タダで読めるって知らずに。私は生まれつき英語をスラスラ読めない体質なのですが、このは読みやすいです。内容も、説明のテンポがちょうどよくて、頭に入りやすいです。人生に余裕ができたら続きを読みます。 Real World

    タダで読めるHaskell本。5冊。 - このブログは証明できない。
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

    Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro
  • 栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2

    栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib

  • Jaskell - Home

    What is Jaskell? Jaskell is a functional scripting programming language that runs in JVM. The name "Jaskell" stands for Java-Haskell, Haskell being the famous pure functional programming language. Why Jaskell? There are already many cool scripting languages in jvm. Jython, JRuby, Groovy etc. They are all excellent and very practical scripting languages. Why yet another scripting language? Well. Ja

  • The Haskell.NET Project

  • 第9回 Haskellはなぜ遅いと思われているのか

    前回は遅延評価の仕組みについて説明しました。今回は前回の知識をもとに,遅延評価の効率について検討していきたいと思います。 遅延評価のほうが速くなる場合 遅延評価の利点は,これまで何度も説明してきたように,無駄な計算を省けるところにあります。 (\x -> fst (sum x, product x)) [0..5]という式について考えてみましょう。sumとproductはいずれもPreludeの関数で,有限リストの数字を「足し合わせる関数」と「掛け合わせる関数」です(参考リンク)。この式は,先行評価ではこのように簡約されます。 先行評価 (\x -> fst (sum x, product x)) [0..5] => (\x -> fst (sum x, product x)) [0,1,2,3,4,5] => fst (sum [0,1,2,3,4,5], product [0,1,2,

    第9回 Haskellはなぜ遅いと思われているのか
  • Haskell の concat とか知らなかった -

  • Haskell基礎文法最速マスター - think and error

    見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下のをお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJavaRubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類

    Haskell基礎文法最速マスター - think and error
  • 1