タグ

haskellとprogrammingに関するaslaのブックマーク (14)

  • なぜConduitなのか? - あどけない話

    Iteratee という概念は、Haskell 界に適切な資源管理と合成可能な IO をもたらした。そして、以下の3つのパッケージが乱立することになった。 iteraee enumerator iterIO 昨年の ICFP の際、Iteratee の生みの親である Oleg さんに「この状況をどう思っているのか」と聞いてみた。曰く「とてもよい状況です。いくつかの実装が現れ実際に使われることで、当に必要な機能が分かるでしょう」。 もしかすると、Conduit によって彼の願いがもう実現されたのかもしれない。 Iteratee には何が足らなかったのか? 以下は、enumerator の使用経験基づく考察だが、たぶん Iteratee 全体に言えると思う。 Iteratee で資源を割り当てられない Michael Snoyman さんの不満 例外処理が大変 liftIO と catch

    なぜConduitなのか? - あどけない話
    asla
    asla 2013/01/25
    Haskell の 新しい IO の話
  • SSL/TLS - EAGLE 雑記

    Haskell で https な通信を行おうとしたら http://hackage.haskell.org/package/curl http://hackage.haskell.org/package/download-curl といった curl を利用したライブラリを使うのが(たぶん)普通だった. が,最近純粋に Haskell を用いて作られた tls というライブラリが公開された. ドキュメントを見ると「warning probably subject to change」と書いてあるようなところもあるが,ちゃんと使える状態にはなっている. これに enumerator 用のインターフェイスが加えられたものが http-enumerator の一部として使われ,https をサポートしている. これを利用することで curl に依存せず,Haskell になじむ API で h

    SSL/TLS - EAGLE 雑記
    asla
    asla 2012/12/17
    Haskell で SSL
  • Enumerator Package - Yet Another Iteratee Tutorial - Preferred Networks Research & Development

    バレンタインチョコ欲しい! 田中です。 Iterateeの素晴らしいチュートリアルを見つけたので、今回はその翻訳をお届けしようと思います。以前、The Monad Reader Issue 16 のiterateeの記事をベースにした解説記事を書いたのですが、こちらの記事はかなり概念的なところから始まり、結構天下り的にiterateeの定義を受け入れていたのに対して、こちらの記事は、一貫して具体例からの抽象化で話が進み、また易しく書かれているので、比較的理解しやすいと思います。また、実際の実装に即して解説されていますので、読み終えて即実際に使ってみることが出来るでしょう。 このチュートリアルを書かれたMichael Snoymanという方は、現在YesodというHaskellのWebフレームワークを精力的に開発されています。Yesodには実際にiterateeがふんだんに用いられており、そ

    Enumerator Package - Yet Another Iteratee Tutorial - Preferred Networks Research & Development
  • 使ってみよう Enumerator - あどけない話

    Enumerator Package - Yet Another Iteratee Tutorialは、Iteratee: 列挙ベースのI/Oよりは分かりやすいのですが、やっぱりよく分かりません。なぜなら、僕は使い方を知りたいのに、作り方が書いてあるからです。そこで、Enumerator ライブラリの使い方を簡単に紹介します。 登場人物 Iteratee 入力をもらって計算をします run_ で実行します IO モナドが指定されていれば、副作用を起こせます オートマトンと考えると分かりやすいです Iteratee 同士は (>>=) で合成できます Iteratee >>= Iteratee → Iteratee Enumerator Iteratee と ($$) で合成することにより、新たな Iteratee になります Enumerator $$ Iteratee → Iterate

    使ってみよう Enumerator - あどけない話
    asla
    asla 2012/12/17
    Iteratee と Enumerator
  • Mighttpd2のビルドしようかと思ったけれど - yunomuのブログ

    結論から言うとできてません。 やたら早く目がさめたので遊んでる。 Haskellはもういいよって言ったけど、なんか適当なHaskell実装は一度は見てみたいなぁとは思っていて、Mighttpd2のソースを見てみたら案外量が少なかったのでちょっとやる気が出た。気になることはソースに聞こう。 やるやらないは別として、ちょっといじれる状況くらいは作っておこうと思って、ビルドしてみる。 kazu-yamamoto/mighttpd2 - GitHub ちなみに普通に入れるならcabalで一発っぽい。 # cabal install mighttpd2 1と2の違いはわからない。 cabalってビルドもできたのかー。などと思いながらさっそく # git clone git://github.com/kazu-yamamoto/mighttpd2.git # cd mighttpd2 # cabal

    Mighttpd2のビルドしようかと思ったけれど - yunomuのブログ
  • HakyllとpandocとMighttpdでサイトを作った話 - 純粋関数空間

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

    asla
    asla 2012/02/04
    Pure Haskell Site
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    asla
    asla 2012/01/29
    モナドの説明として、しっくりきた。やっとイメージができました。
  • Haskellでエコーサーバー

    Haskellで、TCPのサーバーを書いてみたいと思い、手始めにエコーサーバーを書いてみました。 エコーサーバーというのは、クライアントからの入力をそのまま返すサーバーです。 以下の記事を参考にもっと簡単なものを作ってみます。 A simple TCP server | The Haskell Sequence main = withSocketsDo $ do [p] main部分です。 ソケットを開いてlistenします。 acceptLoop soc = do (hd, host, port) mainのあとの処理です。 クライアントがきたら、accept(受け付け)して、新しいスレッドを生成し、そちらに処理を任せます。 新しいクラアントに対応しつづけるため、処理が終わってはいけませんので、こちらは無限ループを続けます。 echoLoop hd = do sequenc

  • Haskell でソケット通信をやってみる

    Haskell で ソケットを使ったクライアント-サーバ通信をやってみる。 Haskell を使ったネットワーク・プログラミングの入り口が分かればいいので、クライアントから受け取った文字列をひっくり返して返すだけの、簡単なお題とする。 まず、サーバはこんな感じ。 import Network import System.IO main :: IO () main = withSocketsDo $ do hSetBuffering stdout NoBuffering server `catch` (const $ putStrLn "Exception caught.") putStrLn "Connection closed." server :: IO () server = do sock <- listenOn (PortNumber 8001) repeats (receive

  • Yesod勉強会

    Yesod勉強会 http://partake.in/events/5f27d86f-0211-4af4-9a9e-5f123056e44e での発表資料です。Read less

    Yesod勉強会
  • A simple TCP server | The Haskell Sequence

    A simple TCP server which accepts multiple clients and echos input text back to all those connected. It uses threads to manage multiple handles, and Software Transactional Memory to pass messages. This text is literate Haskell, and has been tested with ghc 6.6 on Linux/x86. Type annotations are included for didactic purposes. > module Main where > import Prelude hiding (catch) Module Network is th

    asla
    asla 2011/11/19
    Haskell TCP通信のサンプルコード
  • Socket

    asla
    asla 2011/11/18
    Haskell でエコーサーバを作る話。ソケットの通信のサンプルとしていいな。
  • 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
  • Haskell Link

    型推論による静的な型付け、純粋な参照透明性を特徴とする関数型言語 リソース リファレンス The Haskell Home Page [en] Haskell Wiki [en] Programming in Haskell [ja] 処理系 Haskell Compilers and Interpreters [en] Hugs [en] GHC [en] nhc98 [en] Helium [en] Implementing functional languages: a tutorial チュートリアル やさしい Haskell 入門 [ja] Yet Another Haskell Tutorial [en] プログラム工学VI 授業関連資料 [ja] <- こっちの方がやさしい Haskeller への道 [ja] モナド All About Monads [en] <- 決定版

    asla
    asla 2011/11/18
    Haskell のサンプルとして面白い
  • 1