タグ

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

  • 48時間でSchemeを書こう - Wikibooks

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

    gfx
    gfx 2014/05/11
  • Haskell使いの高頻度取引の会社にお邪魔した

    先日、日経コンピュータ特集記事の取材で東京都内の某所にある「Tsuru Capital」という、高頻度取引(HFT、High-Frequency Trading)を手掛ける企業のオフィスにお邪魔した。 HFTというのは、プログラムによって株式などの金融商品を数ms(ミリ秒)から数μs(マイクロ秒)で高速に自動取引すること。自己資金で取引する「プロップファーム(proprietary trading firm)」と呼ばれる企業が中心で、米GETCO(2013年7月に米Knight Capitalと合併)などが有名だ。 HFTを行うプロップファームの多くは、米国など海外に拠点を置いており、Tsuru Capitalのように日国内に拠点を置く企業は珍しい。株式売買では、海外企業であっても国内の証券会社と契約し、自社の取引プログラムをその証券会社のサーバーに配置すれば日市場でのHFTは行える。

    Haskell使いの高頻度取引の会社にお邪魔した
    gfx
    gfx 2014/04/21
  • Home Page - FP Complete

    ACCELERATE Projects Implemented system that cut the release cycle from 6 months to on-demand

    Home Page - FP Complete
    gfx
    gfx 2014/03/24
    webベースのHaskell IDE!!便利最高!!! #すごいH
  • Haskell と monadic IO について書く - おさかな日誌

    Haskell では IO を理解するのが難しい。さらにそれがモナドなので2重に???になる。最近この2つをわけて考えれるようになったので書いてみたい。(書いてみた結果、無駄文感するのでつらい) 想定する読者 Haskell を始めたばかりで基的な文法などはわかるが IO???? となっている。 モナドはファンクターであることを知っている。 モナドを押しつぶす join という関数を知っている。 この文章はモナドに対する説明ではなく、Haskell の IO モナドに対する説明という感じです。 ちなみにこの文章での "Haskell" は "Haskell 1.3 以降の Haskell" のことです。 Haskell と IO Haskell は純粋関数型言語です。純粋関数型言語であるということは「外界を変える力」がないということです。 ということは純粋であるためには入力も受け取れない

    Haskell と monadic IO について書く - おさかな日誌
    gfx
    gfx 2014/02/17
  • 社内Haskellチュートリアルのススメ | GREE Engineering

    こんにちは。インフラストラクチャ部の竹辺(@beketa)です。 このエントリはGREE Advent Calendar 2013 12日目の記事です。 1. グリーでのHaskellプログラマ採用 Haskellを導入する企業が増えているようです。最近国内のメディアで紹介された事例だけでも Tsuru Capital様: http://itpro.nikkeibp.co.jp/article/Watcher/20131003/508622/ NTTデータ様: http://itpro.nikkeibp.co.jp/article/NEWS/20131126/520642/ の複数があり、すっかり実用的なプログラミングとして定着した感があります。 弊社でも2012年の中ごろから複数のプロジェクトでHaskellを使い始めており、昨年からは一部の商用サービスでもHaskellで開発したミド

    社内Haskellチュートリアルのススメ | GREE Engineering
    gfx
    gfx 2013/12/13
  • HaskellなAltJS達をいじってみる - アドファイブ日記(ミラー版)

    Haskell Advent Calender 2013 12/5日当番記事です。 CoffeeScriptとかHaxeとかTypeScriptみたいなJavascriptトランスレートして使う言語たちをAltJSっていうそうです。HaskellコードをJSに変換するプログラムもいくつかあって、このページに一覧があって詳しい。そこに掲載されてるFayとHasteを触ってみます。他にUHCやGHCJSというのもありますが試したら弱冠インストールでハマったのでそれらは機会あればまた。 そいつらを上手く使えば、サーバサイトはYesodまたはScotty、クライアントサイドはHaskellなAltJSを使ってオールハスケルなWeb開発が(マークアップをHaskellでやるやつとかもありますね)可能になります。ちなみにScottyのTipsを以前少し書いたので以下もあわせてどうぞ。 Scottyで

    HaskellなAltJS達をいじってみる - アドファイブ日記(ミラー版)
  • What is "point free" style (in Functional Programming)?

    gfx
    gfx 2013/10/28
  • HaskellでWebAppの開発に必要なN個のこと - maoeのブログ

    あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずHaskellについて知っていることを書いた。 ← ここまで引用。 パッケージマネージャ Cabal 1.18を使おう。以上。 アプリケーションサーバ WSGIとかRackとかの流れでHaskellでもwebアプリのサーバインタフェースを統一化する動きがいくつかあった。その中で一番市民権を得たのはwaiと呼ばれるものだ。 ただ、残念なことにHaskell界でここ数年ずっと続いているI/Oストリーミングライブラリ戦争の決着がついていないため、統一化の状況は思わしくない。waiはconduitというライブラリに依存しているが、フレームワークによっては別のI/Oストリーミングライブラリを基盤にしている。 現状の3

    HaskellでWebAppの開発に必要なN個のこと - maoeのブログ
    gfx
    gfx 2013/09/11
  • 第31回 禁断の機能「unsafePerformIO」の深淵

    Haskell以外の言語に慣れ親しんでいる人は,プログラムがIOモナドに閉じこめられてしまうHaskellのプログラミングを窮屈に感じるかもしれません。そうした人にとって,unsafePerformIOはこの窮屈さを取り除いてくれる頼もしい味方に見えるでしょう。しかし,unsafePerformIOを気軽に使用すべきではありません。unsafePerformIOは,決してHaskell初心者が期待するようには動作しないからです。 今回は,unsafePerformIOとは一体何なのかを掘り下げて考えてみたいと思います。GHCのunsafePerformIOの実装を例に取り,「unsafePerformIOが実際にはどのように振る舞うか」「unsafePerformIOの使用が問題を起こさないのはどのような場合か」といったことを説明します。 最適化によって振る舞いが変わる なぜunsafeP

    第31回 禁断の機能「unsafePerformIO」の深淵
    gfx
    gfx 2013/09/09
  • Haskell における数値間の変換(Int・Integer・Float・Double・Rational ) - sirocco の書いてもすぐに忘れるメモ

    Haskell は数値の型を合わせないと計算出来ません。それは他の言語も同じですが、 Haskell には型推論があるため、変換しようとする型を直接指定するのでなく、中間としてジェネリックな型を指定して、あとは Haskell におまかせするというようなイメージです。 (参考:Real World Haskell p153 表6-4 数値間の変換) また、コンパイラが勝手にキャストとするということはありません。 整数(Int、Integer)の型が違う場合は fromIntegral を使って Num にして型を合わせてから計算する。 fromIntegral は Integral型からNum型に変換する関数です。 ghci> (fromIntegral (2::Int)) + 3::Integer --> 5 ghci> :t fromIntegral fromIntegral :: (

    Haskell における数値間の変換(Int・Integer・Float・Double・Rational ) - sirocco の書いてもすぐに忘れるメモ
    gfx
    gfx 2013/09/02
  • GHCのこと

    オブジェクトレイアウト 通常のHaskellの値(代数的データ型および関数)と、未評価の計算を表すサンクは、全てポインタで参照される。ポインタが指す先は通常はヒープ上のオブジェクトだが、静的セクションに置かれていることもある。いずれにしてもレイアウトは同じで、以下の一般形をとる。 オブジェクトの先頭1ワードは静的領域へのポインタ(infoポインタ)で、この値を評価(関数なら適用)するためのコード(entry code)と、このオブジェクトの種類に関する情報を集積したレコードを指している。なお、GHCにおける1ワードはポインタと同じ大きさ、つまり32ビットOSなら32ビット、64ビットOSなら64ビットである。これはIntの精度と同じでもある。 代数的データ型 代数的データ型の評価済みの値では、infoポインタが構築子の種類を表し、その後に構築子の引数を入れるスロットが続く。したがって、N引

    gfx
    gfx 2013/09/02
  • Yesodを支える技術

    社内 TechTalk での資料。Yesod に用いられている Haskell の先進的な機能について軽く解説しています。

    Yesodを支える技術
  • エラー処理を書いてはいけない - Preferred Networks Research & Development

    昨日セミナーとして USTREAM させていただいた資料を公開いたします。 エラー処理を書いてはいけない USTREAMのビデオ タイトルは釣り気味ですが、内容はいたって真面目なのでご安心ください。 概要 やってはいけないシリーズ、の第三弾としての試みです。 リソース管理をしてはいけない ロック処理を書いてはいけない エラー処理を書いてはいけない ← New! タイトルに反して(あるいはタイトル通りに)、正しく長時間動作するプログラムを書くには きちんとエラー処理を行う必要がありますが、 それを何とか抽象化しようという(Haskell界隈での)試みについてのご紹介でございます。 あまり他の人がこういうことを言っているのを聞いたことが無いので、 自分の日々考えていることを世に問うた形になっております。 実際のところ、社内ではC++がメインに使われておりますので、 こういう手法が用いられている

    エラー処理を書いてはいけない - Preferred Networks Research & Development
  • Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話

    命令型言語の JavaRuby がユーザスレッドからカーネルスレッドに移行したのとは対照的に、関数型言語の Erlang や Haskell では軽量なユーザスレッドを提供することに成功しています。僕は、この違いが何から生じているのか理解したいと思っています。この記事では、これまで調べたことをまとめます。 軽量なユーザスレッドは Erlang が有名ですが、Haskell (GHC)でも利用できることを重ねて強調しておきます。Haskell の方が Erlang よりも速いようです。追記:フェアな比較ではないようなので、話半分で参照して下さい。 Rubyの場合 Ruby 1.8 まで提供されていたユーザスレッドは、軽量とは言えませんでした。その理由は、ユーザスレッドをコンテキストスイッチさせる際にスタックをコピーしていたからです。Rubyソースコード完全解説の第19章 スレッドによれ

    Haskell(GHC)での軽量ユーザスレッドの実装方法 - あどけない話
  • HaskellとDSL - あどけない話

    LL Planets の「メタプログラミングの光と闇」で Haskell について話してきました。PerlPythonRuby が概ね内部 DSL を作る話だったのに対し、Haskell では外部DSLを内部に埋め込むという話をしました。短い時間で説明不足になった感があるので、この記事で二点ほど補足します。 Haskell では文法がうまく設計されており、コードを書けば自然とDSLっぽくなるので、わざわざ内部DSLなんて言わない。それよりもコンビネータという考え方を学ぶ方が新しい視野がひらけてよい。 Haskell ではパーサーを作るのが簡単。だから自分で言語を作るのも簡単。その言語を外部ファイルから読み込んでもいいし、HERE DOCUMENT のように内部に貼付けることもできる。 関数を二項演算子として扱う Haskell では関数をバッククォートで囲むと二項演算子になります。 i

    HaskellとDSL - あどけない話
    gfx
    gfx 2011/08/22
  • 「ふつうの Haskell プログラミング」一人読書会(1日目) - tsucchi’s diary(元はてなダイアリー)

    「ふつうのHaskellプログラミング」というを読んでいます。 前から Haskell 勉強したいなー、と思っていて、「Real World Haskell」とか、「プログラミングHaskell」とか買ってみて、勉強したのだけど、「なんか説明を端折ってないか?」みたいなところが多々見受けられて、途中から意味分からなくなってしまったので、もう少し簡単そうなを買ってみました。 ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門 さて、初日は1章と2章の途中まで読んでみました。1章は概略とか Hello World とかなので、問題なく終了。2章からは、Unix コマンドっぽい物体を作っていきます。ソースコードを引用していいのか分からないのと、引用しただけだと何も面白くないので、Perl で書いたソースを使って、どんなことしてるのかを説明していきたいと思います。

  • The Typeclassopediaを訳しました, The Typeclassopedia - #3(2009-10-20)

    ■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日語(特に専門用語の日語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first

  • Haskellで書いたCGIをPerlでテストする - Pixel Pedals of Tomakomai

    以下は、aとbに渡された数字を足し算するだけの簡単な(?)CGIです。 #!/usr/bin/env runghc {- sum.cgi -} import Network.CGI import Control.Monad cgiOutput (Just n) = do setHeader "Content-Type" "text/plain" output $ show n ++ "\n" cgiOutput Nothing = do setHeader "Content-Type" "text/plain" output "" cgiMain = do a <- getInput "a" b <- getInput "b" cgiOutput $ foldl (liftM2 (+)) (Just 0) (map (liftM read) [a, b]) main = runCGI $

    Haskellで書いたCGIをPerlでテストする - Pixel Pedals of Tomakomai
  • 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