タグ

Haskellに関するakaneharaのブックマーク (16)

  • Haskellの型クラスについて | mrsekutの備忘録

    NewsLearn more about the company, PR and product updates here.

    Haskellの型クラスについて | mrsekutの備忘録
  • プログラマであるあなたが圏論を学んで得られる事、得られない事 - Creatable a => a -> IO b

    「Haskellと数学とちょびっと音楽」なんていうシャレオツなサブタイをブログに付けてるのは誰ですか? 俺だよー! 大体、Haskell関連のコミュニティに顔を出していると、 数学科出ましたーとか、物理専攻ですー、とか、そーいう人がわりと多いのですが、 僕は「勉強なんて出来ないんジャー・レッド」だったので、サブタイトルに「数学」なんて入れつつも、 数学の話はほとんど出来なかったりとか出来たりとか・・・結局Haskellの記事しか書いてないですね、はい。 ただ、どちらかというと、Haskellでも処理系どうのとか、パフォーマンス云々とか、 そういう話より型システムでどうやって抽象化するかーみたいな、そういう話のほうがおもしれーとか思ったりしたので、 気づいたら圏論なんかはガジガジしてまして、多少の自己流の知識があったりとかなかったりとかしてるのです。 純粋関数型やらHaskellやらがメジャ

    プログラマであるあなたが圏論を学んで得られる事、得られない事 - Creatable a => a -> IO b
  • オーバーロードは何故にかくも難しいのか:Haskellの成功と失敗 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    名前や記号の多義的使用をオーバーロードと呼びます。オーバーロードとは「曖昧な表現を使う」ことだ、と言ってもいいでしょう。曖昧さを嫌うコンピュータに、曖昧な表現を理解させるのは難しいことです。コンピュータに関する技術や理論以前に、「我々人間は、曖昧な表現をどう使い/どう解決しているのか?」と問う必要があります。 内容: Haskellの場合 -- The・構造の仮定 要素とコレクションの事例 型クラスの境界線は引けるのか 名前・記号の問題は難しい Haskellの場合 -- The・構造の仮定 「入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;)」において: 後知恵で言えば、[注:Haskellのオーバーロード・メカニズムは]「悪いお薬」だったと思います。服用するとモノ凄く元気になるが、長期的には心身を蝕んでしまうお薬だったと。 Haskellが実装した記号の乱用はやはり

    オーバーロードは何故にかくも難しいのか:Haskellの成功と失敗 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Haskellの乱数事情

    まえおき ここ数日触ってるElmが楽し過ぎてHaskellACがギリギリになってしまいました。。。日語での情報が少ない気もしますし、擬似乱数生成器(pseudo random number generator; PRNG)ライブラリの話で茶を濁したいと思います。 Elmとても楽しいので是非触りましょう!Elm Advent Calendar 2014もまだ枠が空いてる様です! さて、Haskellerの皆様、乱数はお使いでしょうか?私は殆ど使いません。 ……ですが、ゲームや乱択アルゴリズム、シミュレーションなど乱数が必要となるシチュエーションも多いかと思われます。あと、Haskellの利点として挙げられる事も多い、QuickCheckといったランダムテストでも乱数が必要ですね。 Haskellの場合、Haskell98の時点では標準ライブラリとしてPRNGライブラリのAPIが策定されてい

    Haskellの乱数事情
  • Haskellチートシート(翻訳) - Qiita

    http://cheatsheet.codeslower.com/CheatSheet.pdf の翻訳です。 日語訳版のファイルが無くなっているようなので。 誤字誤訳その他問題があればコメント、編集リクエストください。 また、直訳な部分も多いので良い訳がある場合もコメント、編集リクエストください。 Haskell Cheat Sheet このチートシートはHaskellの基的な要素である構文、キーワード、その他の要素を記しています。また、実行可能なHaskellファイル、印刷可能なドキュメントです。お好きなインタプリタでソースを読み込んでサンプルコードを動かしてください。 基構文 コメント 単一行コメントは--で始まり、行末までがコメントになります。複数行コメントは{-から-}までです。コメントはネストすることができます。 HaskellコードのドキュメントシステムであるHaddoc

    Haskellチートシート(翻訳) - Qiita
  • Parsing Stuff in Haskell

    London Haskell user group, 24rd January 2013. A talk by Ben Clifford on Parsec parser combinators.

    Parsing Stuff in Haskell
  • Haskellで生産性を高める-Pythonからの移行 | POSTD

    (注記:11/30、いただいた翻訳フィードバックを元に記事を修正いたしました。) 最近、Haskellでも生産性の高い作業ができるほどに、この言語を使いこなせるようになりました。定期的にPythonを使いもしますが、今ではWebプロトタイプ作成のほとんどをHaskellで行っています。それで、時間が経ってしまう前に、この言語の学習経験を通じて考えたことなどをまとめたいなと思っています。 データファースト これはどちらかというと動的言語から静的言語への移行に関しての考えなのですが、Haskellのデータ構造は、ほとんどの場合、データ宣言と型シグネチャで提示されるのに対し、Pythonの場合、おおむねコードによって暗黙に定義されます。 Pythonの関数について私が初めて抱いた考えは、「コードに何が書かれているか?」でしたが、Haskellでは、「データはどう見えるか? この関数は___を受け

    Haskellで生産性を高める-Pythonからの移行 | POSTD
  • http://mew.org/~kazu/material/2011-server.pdf

  • Real World Haskell の古いところ - あどけない話

    Real World Haskell の内容が古くなってきたので、どこが古いかとか、それに変わる新しいものは何とか、まとめたいと思う。 Real World Haskell―実戦で学ぶ関数型言語プログラミング 作者: Bryan O'Sullivan,John Goerzen,Don Stewart,山下伸夫,伊東勝利,株式会社タイムインターメディア出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型購入: 8人 クリック: 245回この商品を含むブログ (76件) を見る 1章 始めましょう 今でも通用する。 2章 型と関数 今でも通用する。 3章 型を定義し、関数を単純化する 今でも通用する。 4章 関数プログラミング ghc に --make オプションはもう不要。 5章 ライブラリを書く 5.14節では、"runghc Setup build" の

    Real World Haskell の古いところ - あどけない話
  • マルチコア時代の最新並列並行技術 Haskellから見える世界

    1 Haskell kazu@iij.ad.jp 2 (parallel) (concurrent) 3 4 5 6 7 Haskell 8 OS 9 Haskell 10 Haskell 11 Haskell Haskell 12 Haskell 13 Haskell 14 ) N 15 map map Google MapReduce 16 Java puzzles.parallel().map(e -> solve(e)); // Scala puzzles.par.map(solve); // Haskell map solve puzzles ‘using‘ parList rseq ) 17 % ghc -O2 -threaded foo.hs % ./foo +RTS -N2 18 Repa Accelerate GPU NVIDIA GPU CUDA 19 h x = do

  • Haskellのエンジニアは二流なのか?(答えはノーである) | POSTD

    挑発的なタイトルによって誰かが気分を害してしまう前に、私はこの問いに対する答えも書いてしまうことにしました。答えは“ノー”です。しかしこのテーマには、なかなか興味深い議論があるのです。HaskellやErlangや、特にClojureなどのあら探しをするつもりはないのでしょうが、Piaw NaはQ&AサイトQuoraの あるアンサー で以下のようにコメントしています。 プログラミング言語を固定するのは二流のエンジニア/コンピュータサイエンティストである証です。 [中略] 私がErlangのサーバに携わるポジションの採用をした時も、Erlangのスペシャリストだと言うエンジニアより、優秀なオールラウンダーのエンジニアを雇ってErlang(これに限らず何でも)を学ばせてそのポジションを埋める方が断然いいと感じました。 Na氏の意見は1990年代に設立されたGoogleAmazonなどの技術

    Haskellのエンジニアは二流なのか?(答えはノーである) | POSTD
  • Haskell使ってみた | GREE Engineering

    こんにちは。インフラストラクチャ部の池原です。 このエントリはGREE Advent Calendar 2013 13日目の記事です。 グリーではミドルウェアの開発にHaskellを用いています。日は、C/C++Javaの経験はあるがHaskellは初めてだった私が、Haskellをミドルウェア開発に導入した際に戸惑った事をいくつかご紹介します。 私がHaskellを使い始めたのは1年半ほど前です。最初はOCamlに興味を持っていたのですが、すでに社内で利用者がいたこともあり、諸般の事情からHaskellを選択することにしました。 Haskellに対する私の第一印象はこのような感じでしょうか。 型システムが強力なので、つまらないバグでサービスを止める事態を避けられる。 他の関数型言語と比べて読みやすい(カッコをあまりつかわなくてもよい)。 Posix関連のライブラリが充実しており、シ

    Haskell使ってみた | GREE Engineering
  • Haskellでコマンドラインアプリケーションを作る時の基本的な情報とTips - fujimuradaisuke's blog

    Haskellでコマンドラインアプリケーション(以下CLI)を作る時の基的な情報とTipsをまとめてみました。 Haskellは雰囲気で読める、しかしCLIはあまり作ったことが無い、って人が想定読者です。 この記事はHaskell Advent Calendar 2014の16日目のエントリです。 とりあえず何のサンプルコードも無く話を進めるのも雰囲気が伝わらないかなと思って、Gitリポジトリにあるファイルの中身を標準出力に出力するプログラムをls-moreという名前で作ってみました。 module Main where import Control.Monad import Data.Monoid import qualified Data.Version import Options.Applicative import Paths_ls_more (version) import

    Haskellでコマンドラインアプリケーションを作る時の基本的な情報とTips - fujimuradaisuke's blog
  • 内包表記について、すごい合同勉強会で話した | そんなこと覚えてない

    すごい合同勉強会2014 in 広島でセッションしたので内容を公開しておく。 今回は「私がモナドの内包表記という名前を知った時の感覚を伝えよう」というのが目的でした。 さりげなく「私がモナドに感じている効能を伝える」というのもしているのですが、そこは当にさりげなく。 内包表記。その意味を知らずに5年前ぐらいにpythonで利用していて、forやif文字通りにうけとっており、その動作を正しく理解できてないときがありました。 現在とその間にHaskellを学び、その5年前の自分に内包表記を伝えるにはという観点で話を進めました。 まず、リストの内包表記ですが、リストを生成を簡単にしてくれる機能です。 内包表記は、どうやら数学の集合の記法である内包的記法に由来するそうで、「関数プログラミング入門 ―Haskellで学ぶ原理と技法―」か何かで読んだ記憶があります。 その対になる記法として外延的記法

  • 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プログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません
  • Haskellでコマンドラインパーサを使う - yunomuのブログ

    コマンドライン引数のパースがだいたいどう転んでも面倒くさい。特にCとかJavaとかは当に泣きたくなりますよね。まあJavaでコマンドラインのプログラムを書く事なんてあんまし無いかもしれませんけど。いや、ありますけど。泣きながら書いてました。 Haskellでもまあ別に普通に面倒くさいんですけど、いくつかライブラリがあって、その中で一番目についたというか使いやすそうだったライブラリがcmdargsでした。 使い方。 {-# LANGUAGE DeriveDataTypeable #-} module Main where import System.Console.CmdArgs data Option = Option { label :: String , size :: Int } deriving (Show, Data, Typeable) option :: Option op

    Haskellでコマンドラインパーサを使う - yunomuのブログ
  • 1