タグ

haskellに関するaslaのブックマーク (20)

  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • 手続き脳によるHaskell -- Sorting Algorithms

    このページは手続き脳から脱却でいない筆者が、Haskell による各種 ソートティングアルゴリズムを実装してみた結果を紹介するページです。ソート はアルゴリズムの基ですから、これで Haskell を攻略しようというわけ です。 ところで、Haskell に関するWebページを巡回していると、高階関数やモナド などを複雑に使ったアクロバチックでアブノーマルなコードに出会うことが しばしばあります。書いている超頭の良い人達は自らの変態さ加減が披露出来て 快感なのかもしれませんが、頭の悪い私にはそんなコードは理解できません... orz。 そこで私のページでは次のスローガンでプログラミングを行います 普通にやれ、普通に! そんなわけで「モナドを理解したい」とか常人には不可能な無理難題を期待 している人は他のページを当たってください。筆者自身が分かってないので解説 できません。ごめんなさい。

  • なぜ Haskell ではキューが軽んじられているか? - あどけない話

    Haskell ではキューが欲しくなったら Data.Sequence を使えと言われる。Seq は両端キューだし、シーケンスとして使えば、連結(><)や分割(splitAt)が、ならし計算量で O(log N) という優れものである。しかし、内部がfinger treeなのでコードが複雑なのと、計算量が「ならし」なところが玉に傷である。 もっと単純で、最悪計算量を保証する(両端でない)キューが標準で提供されてもいい気がする。その候補には、リアルタイムキューがある。どうして標準でキューが提供されないのだろう? 僕なりの答えは「需要がない」だ。 問題を解くときにスタックはよく使うが、キューが必要な問題はそんなに思いつかない。僕はネットワーク屋なので、もちろんルータにはキューが必要なことは知っているが、それ以外で有名どころと言えば幅優先探索ぐらいだ。 幅優先探索 でも、Haskellではキュー

    なぜ Haskell ではキューが軽んじられているか? - あどけない話
  • なぜ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 の話
  • 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita

    追記(2020.4.19) Pandoc User’s Guideを日語に全訳しました。 よろしければご参照ください。 新しい翻訳をプレリリースしました!(翻訳途中の部分もあります) Pandocユーザーズガイド 日語版 [2.7.2] — 日Pandocユーザ会 2019.02.21 ドキュメント 旧日語版:Pandoc ユーザーズガイド 日語版 はじめに 今回は、ドキュメント作成Tips Advent Calendar 2012の1日目 (マインドマップから全てを紡ぎ出す - XMind+Pandocのドキュメント作成術 -) で少し紹介したPandocというツールについて、もう少し深く掘り下げて紹介したいと思います。 MarkdownとかreStructuredTextとか、流行ってますよね いわゆる軽量マークアップ言語が最近流行しています。特にMarkdownも杓子も

    多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita
  • 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

  • プログラミング言語/Haskell - プログラミングスレまとめ in VIP

    Haskellの特徴 † Haskellのおもな特徴を列挙すると次のようになる。この手の言語に慣れていない人には意味の分からないところがあるかもしれないが、それは筆者が手を抜いて説明を省いているからなので、適当にスルーしてほしい。 代数的データ型と、パターン照合。 インデントを利用した簡潔な構文。 型推論つき静的型付け。 型推論と多重定義を両立する、型クラス。 純粋な(つまり、式に副作用がない)関数型であること。 第一級の動作による入出力。 ↑ 関数型言語って何 † Haskellは純粋関数型言語に分類される。関数型言語というのは、関数的プログラミングがしやすいような言語、という意味だ。では関数的プログラミングとは何というと、これは手続き的プログラミングと比較してみるのが良い。 現在主流の言語は、ほぼ全て手続き型言語だ。手続き的プログラミングでは、コンピュータに単純な命令を出すことができて

    asla
    asla 2012/01/17
  • Yesod勉強会

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

    Yesod勉強会
  • Mighttpd

    Author: Kazu Yamamoto Created: 2010/03/08 Modified: 2017/02/24 Mighttpd2 (called mighty) is a simple but practical HTTP server written in Haskell. It handles static files and CGI scripts. It also provides a feature of reverse proxy and URL rewriting with HTTP redirect. Mighttpd2 is now implemented as a WAI application using the high-performance HTTP engine, "Warp". To httperf Ping-Pong benchmark,

    asla
    asla 2012/01/16
    Web Server
  • 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