タグ

Haskellに関するmzpのブックマーク (39)

  • 第58回 Cの配列をHaskellで利用する

    Haskellでは、リストや配列といったデータ構造に対する処理を高速化するために様々な試みが行われています。しかし、残念ながら現在のHaskell処理系やライブラリの実装には性能面でまだまだ課題があります(参考リンク1、参考リンク2)。Cの配列をHaskellで直接利用するようにすれば、性能の向上を期待できます。 Cで書かれたOSやライブラリのAPIには、Cの配列(およびそうした配列を扱うCの関数)を引数に取るものもあります。HaskellのFFIを利用すれば、HaskellからCの配列を利用できます。今回は、その方法を紹介しましょう。 Cの配列を利用する方法 第22回で説明したように、HaskellのFFIではCのポインタをPtr型で表現します。Cではポインタを使って配列を参照するので、Ptr型を使えばHaskellでCの配列を利用できます。 ただし、ポインタを操作するStorableク

    第58回 Cの配列をHaskellで利用する
  • 第22回 FFIを使って他の言語の関数を呼び出す

    Haskellを使ってアプリケーションを作成しようとすると,ライブラリの機能不足に遭遇することがあります。不足しているこうした機能の中には,C言語で書かれたライブラリやOSのAPIなどの力を借りなければ記述できないものがあります。 このためHaskellでは,第7回で触れたように,実行環境の外にある他言語のライブラリを扱うためにFFIという機能を用意しています。FFIを使えば,Haskellにはない機能を実装できます。 今回はFFIの基的な使い方を説明します。 FFI使用の最初の一歩 最初に,FFIを使ったごく簡単な関数呼び出しを見てみましょう。以下のようなコードで,HaskellからCの関数を呼び出すことができます。 {-# LANGUAGE ForeignFunctionInterface #-} module SimpleFFIExample where foreign impor

    第22回 FFIを使って他の言語の関数を呼び出す
  • HaskellからCライブラリを呼ぶ(FFI) - yunomuのブログ

    Haskellのなんでもアリ具合。 ライブラリをビルドしてるとちょいちょい見えるFFIという文字列、気になって調べてみると、ForeignFunctionInterfaceというものがあって、これはHaskellからCの関数を呼び出すためのモジュールというか拡張らしい。 Haskellのものすごいライブラリの充実度の影にはこういうものがあったりするんですね。 ということでちょっと遊んでみました。 だいたいこの記事のトレスです。 物のプログラマはHaskellを使う - 第22回 FFIを使って他の言語の関数を呼び出す:ITpro 既存のライブラリを呼ぶ 上の記事に習って、libmのsinを呼び出してみます。 まず、何はなくともmanです。sin(3)のmanを見ると、 NAME sin, sinf, sinl - sine function SYNOPSIS #include doubl

    HaskellからCライブラリを呼ぶ(FFI) - yunomuのブログ
  • デザインArafura - Metasepi

  • Ajhcプロジェクトはじめよう - Metasepi

    Table of contents まず最初の改造は? どこらへんを修正したの? Ajhcプロジェクトはどこへ向かうの? これまで jhc のソースコードを読みながら少しずつ改造をして遊んでいたでゲソが、 そろそろpatchが増えてきてまっとうなリポジトリを用意しないと破綻しそうでゲソ。 できればpatchをjhc家に取り込んでもらいたいところでゲソ。 ところが原作者のJohnがどうも忙しいらしく、なかなかmergeしてくれないでゲソ… 1 あまりプロジェクトのforkをしたくないところでゲソが、 このままでは作業が進まないのでjhc向けpatchを貯めるだけのプロジェクトを作ったでゲソ。 その名も Ajhc - arafura-jhc 2 でゲッソ! まず最初の改造は? とはいえ改造にあたって何かテーマを決めたいでゲソ。 jhcは小さなバイナリを吐けるのだから、小さなマイコンでHask

  • Ajhc - Haskell everywhere

    *** We are closing Ajhc project. *** Metasepi Arafura iteration is closed. We decided to use ATS Programming Language for our next iteration. After merging Ajhc's Context Local Heap into jhc, this project will be shutdown. Please use jhc instead of Ajhc. The jhc-components may be useful, if you can't build original jhc. History of Ajhc Haskell compiler Please read Metasepi Foundation report in Jap

    mzp
    mzp 2013/04/21
  • http://www.jmuk.org/diary/index.php/2008/11/14/0/

    mzp
    mzp 2010/07/04
    HaskellのChar回りの話
  • Applicative勉強中:Applicativeとモナド - 取り急ぎブログです

    昨日はリストへの関数適用からApplicativeパターンを見つけるところまでやりました。でも、GoFもいうように、パターンといわれるからには、あちこちで似たような用例が見つからないとおかしいですよね...論文では、リストのほかにモナドも例として取り上げています。先日話したap関数がモナドでの<*>にあたります: ap :: Monad m => m (a -> b) -> m a -> m b ap :: (Monad m) => m (a -> b) -> m a -> m b ap = liftM2 id liftM2 :: (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) } というのがapの定義でした。 そして

    Applicative勉強中:Applicativeとモナド - 取り急ぎブログです
  • ファンクション倶楽部で話してきました - トウフ日記

    http://www.slideshare.net/nskj77/arrow-presentation-706164 ファンクション倶楽部で話してきました。スライドをSlideShareにupしました。イベントでいただいた指摘とそのほか若干の修正をしてあります。 ustで視聴していただいた方ありがとうございました。イベントに来ていただいた方、遠いところ当にありがとうございました。特に発表後に質問と指摘をいただいた、[1..100]>>=penさん、id:nobusunさん、id:hyoshiokさん、lchinさん質問の時間に手をあげていただいてとてもうれしかったです。あんまりうまく答えられなくてすいませんでした。Control.Applicativeやデバッグについてなど勉強しておきます。 イベントスタッフのオブジェクト倶楽部のみんな、発表者のファンクション倶楽部のみんな、ありがとうご

    ファンクション倶楽部で話してきました - トウフ日記
  • 『Arrowのはなし』西川仁

    発表資料: http://d.hatena.ne.jp/nskj77/20081030/1225389324ファンクション倶楽部2008秋イベント ~lambda the world~http://atnd.org/events/99 オブジェクト倶楽部2008秋イベントでもあったもの。前: sm5103088 / 次: sm5103172「こんにちは、ファンクション倶楽部の西川です。今回のファンクション倶楽部秋イベント2008では、私の関数型言語にかける熱い想いと HaskellのライブラリのひとつであるArrowについてお話させていただきます。私の熱い想いはともかく、Arrowは...抽象化能力の非常に高い計算の方法です。参加された方が学校や会社でちょっと披露できるようなネタをみなさんに紹介してみようと思います。

    『Arrowのはなし』西川仁
  • 3分で解るHaskellのArrowの基本メモ - よくわかりません

    語でArrowの説明があまり見付からなかったので、Haskell/Understanding arrows - Wikibooks, open books for an open worldを読んで理解したつもりのメモ。オリジナルの図を見ながらだと分かりやすいかも。誤り・間違いなど、乞うご指摘。 b->cな関数をArrowなるからくり箱に入れると、 (Arrow a) => a b c こんな型になる。型パラメタが、引数のbと返値のcのふたつ。 Monadは、値をからくり箱に入れたもの。からくり箱は基的に(ヘンな)値。 Arrowは、関数をからくり箱に入れたもの。からくり箱は基的に(ヘンな)関数。 arr :: (b -> c) -> a b c Monadでは、値をからくり箱に入れる関数returnがある。 Arrowでは、関数をからくり箱に入れる関数arrがある。 (>>>)

    3分で解るHaskellのArrowの基本メモ - よくわかりません
  • ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません

    Programming with Arrowsを読んで理解したつもりのメモ。誤りなど乞うご指摘。 (復習)Arrowってなに? と思って以前調べたメモが"3分で解るHaskellのArrowの基メモ - よくわかりません"。それにちょっと補足というか観点を変えてまず感覚の整理。 Monadに色んな種類があるように、Arrowも色んな種類がある。 Monad: IO、Maybe、… Arrow: 関数そのまんま(->)、Kleisli m、… ある種類のMonadに色んな型の色んな値を入れられるように、ある種類のArrowに色んな型の色んな関数を入れられる。 Monad: Maybeの例→ 「Maybe Int」 にreturn 0もreturn 777もOK。「Maybe Char」 にreturn 'a'もreturn ' 'もOK。 Arrow: (->)の例→ 「Int -> In

    ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません
    mzp
    mzp 2009/02/02
    Programming with Arrowを読むのがいいのかな
  • [haskell] How To Arrow 基本 - 言語ゲーム

    http://d.hatena.ne.jp/propella/20070807/p1 1:基 http://d.hatena.ne.jp/propella/20070807/p2 2:並置 http://d.hatena.ne.jp/propella/20070808/p1 3:選択 -- なんか知らんうちに Arrow 流行ってるようなので試してみる。 -- http://www.cs.chalmers.se/~rjmh/afp-arrows.pdf によると、ポイントフ -- リースタイルに IO を混ぜるのが Arrow だと考えればよいらしい。 import Control.Arrow -- Arrow では高階型を使いまくるので慣れないとちょっと恐ろしく見える。 -- Arrow は Monad と同じくクラスだが、Haskell で言うクラスとは他でいう -- インタフェース

    [haskell] How To Arrow 基本 - 言語ゲーム
  • Neil Mitchell - HLint

    HLint (formerly Dr. Haskell) reads Haskell programs and suggests changes that hopefully make them easier to read. HLint also makes it easy to disable unwanted suggestions, and to add your own custom suggestions. Running the tool over the darcs source code, we can generate an interactive report with --report, or view the results in the console: $ hlint darcs-2.1.2 CommandLine.lhs:49:1: Warning, eta

  • Real World Haskell

    Why functional programming? Why Haskell? 1. Getting started 2. Types and functions 3. Defining types, streamlining functions 4. Functional programming 5. Writing a library: working with JSON data 6. Using typeclasses 7. Input and output 8. Efficient file processing, regular expressions, and file name matching 9. I/O case study: a library for searching the filesystem 10. Code case study: parsing a

  • 自由に働ける新宿のチャットレディ求人は大学生にもおすすめ

    大学生にピッタリな新宿の在宅チャットレディ求人 大学生の方で、楽しい大学生活で必要になるお金をもっと確保したいという方は、新宿のチャットレディプロダクションで在宅チャットレディになってみるのもオススメです。在宅チャットレディ求人の魅力は、プロダクションからパソコンやマイクなどを借りて、自宅で配信環境を作って仕事を行います。プロダクションのチャットルームのような、充実した環境での配信ではありませんが、忙しい大学生の方でも、自宅で配信ができるので仕事がしやすいというメリットが出てきます。 日中は大学で講義を受け、夕方はサークルや友達との飲み会などで帰ってくるのは21時以降という女子大生の方も多いですが、そんなハードスケジュールの方でも在宅チャットレディなら問題ありません。22時や23時頃から1、2時間程度配信をすれば、それでお金を稼げるからです。普通のコンビニなどのバイトでも、夜遅くから仕事

  • このブログについて - snow-bellの日記

    snow-bellの日記

    このブログについて - snow-bellの日記
    mzp
    mzp 2008/11/10
    すごいなぁ
  • HUnit とその自動化 - zyxwvの日記

    最近テストファースト的なものを試しているので、Haskell の HUnit を使ってちょっと遊んでみた。ところが、実施するテストを選ぶのがめんどい。具体的にはこんな感じ。(HUnit 1.0 User's Guide) test1 = TestCase (assertEqual "for (foo 3)," (1,2) (foo 3)) test2 = TestCase (do (x,y) <- partA 3 assertEqual "for the first result of partA," 5 x b <- partB y assertBool ("(partB " ++ show y ++ ") failed") b) tests = TestList [TestLabel "test1" test1, TestLabel "test2" test2] じゃあ Templat

    HUnit とその自動化 - zyxwvの日記
    mzp
    mzp 2008/09/08
    たしかにHUnitは面倒だよね
  • 山吹色のモナディック疾走 - Gemmaの日記

    モナド*1ファンクターって何? 要するに、型や値に色をつけるってことだよ。 色って? Int型をInt型とかInt型と色わけしたり、1という値を1にしたりね。色をつけるにはreturnを使う。それとか、1 + 3じゃダメで、ここは+も緑にしてやらにゃ。それがLiftM2。あとは、副作用のある世界は全部赤にしておいて、赤になったら変えられないことにすれば、閉じ込めておけるでしょ。色によって、そうして色変えを許さないのもあるし、許すのもあるよ。 なるほど、そういうことか。 Haskellには継続モナドもあるし、fastCGIのライブラリもあるらしいから、これで型付きの継続サーバを作ったら面白そうと思い立ち、Haskellの勉強を始めた。 SchemerがHaskellを覚えるならコレ、Write Yourself a Scheme in 48 Hours。 ocaml-nagoyaのid:zy

    山吹色のモナディック疾走 - Gemmaの日記
  • Haskell のインストール - zyxwvの日記

    お手はココ → http://d.hatena.ne.jp/yoshihiro503/20070706 確実に劣化している。みんなも是非、自分の好きな処理系の紹介に挑戦しよう! - 最近パソコンを買ったんだけど、使い方がよく解らない。という人のために、今日は Haskell のインストールの方法を紹介しよう。 対象となる OS は MacOSX だ! Haskell はだいたい次の3ステップで、使うことが出来る。恐れずに挑戦してみよう。 1。Haskell のサイトから Haskell のもとをダウンロード → 2。それを自分のパソコンにセットアップ → 3。起動 Haskell のもとをダウンロード まずは GHC のサイトを見てみよう。(インターネットにつながっている必要がある。注意しよう) そこは緑色い雰囲気のサイトで、何やら英語でいろいろ書いてあるだろう。 (略) これでステップ

    Haskell のインストール - zyxwvの日記