タグ

haskellに関するpy0nのブックマーク (33)

  • const id - IT練習ノート

    const id は第2引数を返します。その理由がわかりませんでした。 *Main> :t const id const id :: b -> a -> a *Main> const id 1 2 2 理由を説明した Webページをいくつか読みましたが、それでも理解できず(x_x;)。 基に立ち返ると、次の2つを理解していなかった模様。 関数の適用は、すべての演算の中で最も高い優先度をもつ。 関数の引数に関数をとることができる。 なので、 const id 1 2 は、「関数の適用は、すべての演算の中で最も高い優先度をもつ」ので、id関数の適用(id 1)を考えるのではなく、まずconst関数の適用を考えます。この関数は引数を2つとります。なので、括弧を使うと、 (const id 1) 2 となります。「関数の引数に関数をとることができる」ことから、idは、constの(第1)引数とな

    const id - IT練習ノート
    py0n
    py0n 2016/03/15
    この説明が一番しっくりきた。
  • 社内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
    py0n
    py0n 2013/12/12
    こーゆー挑戦は評価されても酔いと思う。
  • 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

    py0n
    py0n 2013/08/20
  • Haskellでスタックを利用した加減乗除の計算機を作ってみる — laskell 0.0.1 documentation

    Haskellでスタックを利用した加減乗除の計算機を作ってみる¶ モナドはStateの理解から入ったほうが分かりやすいんじゃないかなぁと。よく あるMaybeとかEitherから入るとStateモナドで激はまりしますよね? 僕はStateモナドから入ったほうがいいんじゃないかなーと思ったのでそんな題 材を考えてみました。自分はPerl,Pythonがフィールドなので、状態付き計算か ら入ったほうがすんなり理解できたし、そういうヒトもいるかなと思って書い てみました。 ちなみに文章のほとんどをコミュニティfでもく もくしながら書きました。あそこを静岡Haskellerの聖地にするべく頑張ってい ます。 尚、特に参考になった(というかインスパイアされた)のが、 Haskell の State モナド (1) - 状態を模倣する すごいHaskellたのしく学ぼうの14.3 計算の状態の正体 状

    py0n
    py0n 2013/05/08
    いま酔ってるけど、これ理解し易い。
  • Introduction to Fay - 純粋関数空間

    Fay をいじってみたので、 せっかくだから記事を書いておこうと思います。 なお、Fayは新しい言語(というより、処理系と言った方が適切かな)ですので、 ここに書いてある情報は、来年か、あるいは半年後か、 それとももっとずっと早くに陳腐化する可能性がそれなりに低くないことを、 あらかじめお断りしておきます。 この記事執筆時に用いたFayのバージョンは、 fay-0.14.5.0 です。 デモ・前置き 特に何か作りたいものが有ったわけではなかったので、 今回作ってみたものは超どうでも良いツールです。 http://tanakh.jp/tools/sudden.html _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ こういうテキストを生成するだけのツールです。 Fayのコード HTMLコード これらのコンパイルなどもhakyllでまとめて管理できるようにしました。 hakyllに

    py0n
    py0n 2013/05/08
    これ面白い。他の言語はどうなのか明日職場で聞く。
  • GHC でスタックトレース - あどけない話

    これまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。 なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中で評価される式だけだ。(つまり、ここは正格に評価される。) この問題を解決するために GHC 7.4.2 から、わざわざスタックにログを残して、スタックトレースが取れるようになった。すなわち、最新の Haskell Platform をインストールしていれば、この機能を使えるということだ。 例として、以下のプログラムを考えよう。 module Main where main :: IO () main = print $ foo 3 + 1 foo :: Int -> Int foo x = x * 2 + bar x bar :: In

    GHC でスタックトレース - あどけない話
  • Haskellで便利にデータ設計

    persistent.md Haskellで便利にデータ設計 概要 これは Haskell Advent Calendar 2012 の11日目の記事です。 Haskell でデータ設計を便利に行う発想・方法について書きました。 persistent というライブラリを活用します。 Haskell を知らなくても読めます。 主な対象読者は プログラミングHaskell か すごいHaskellたのしく学ぼう! を読み、Haskell をより使いたい人です。 persistent の概要 いわゆる「ORマッパー」の機能を持つライブラリです。 データ設計を記述するという準備をすれば、 DBのデータ出し入れをよろしくやってくれます。つまり データ型を作ったら insert関数に渡せば、はい、DBレコードが追加されます select系関数で取り出したデータには対応する型が付いて安全に使えます RD

    Haskellで便利にデータ設計
    py0n
    py0n 2012/12/20
    ここまで到達していない。
  • 孤独のHaskell - ぼくのぬまち 出張版

    孤独のHaskellに行ってきた.ので,感想とそのフォローアップになりそうなことを書く. とてもいい会だったように思う. 遅刻して現場に付いたらRLEしてみようという例題("AABBCCC"を"A2B2C3"にする関数を書こう)をやっていて, id:khibino0 さんがおもむろに import Data.List ( group ) import Control.Arrow rle = concatMap (uncurry (:) . (head &&& show . length)) . group のような解をブッパしてたりするなど.で,各自自前実装してる人たちのコードとか見ると「細かい操作でボトムアップにやりたいことを実現しようとしてるなー」と感じることが多かった.Haskellの場合(なのかは知らないが)もっと大域的な変換からトップダウンに考えていったほうがシンプルでソレっぽい

    孤独のHaskell - ぼくのぬまち 出張版
    py0n
    py0n 2012/12/04
    かういふ風に考へて行くのか。
  • 静岡のHaskellerはEmacsを使う

    3. まだのヒトは今すぐ入れま しょう !   Haskell Platform 2012.4.0 !   http://www.haskell.org/platform/ !   Emacs 24 !   http://www.gnu.org/software/ emacs/ !   OSXでコンパイルする場合 !   http://sakito.jp/emacs/emacs24.html 4. Haskell環境の設定 !   仮想環境(依存関係で悩まないために) !   シンタックスチェッカー(快適なコーディング) cabal install virthualenv hlint ghc-mod 5. Emacs !   Flymakeでリアルタイム文法チェック !   Emacs内でのghci実行 !   自動補完 M-x list-packages iで選んでxで実行 (flyma

    静岡のHaskellerはEmacsを使う
    py0n
    py0n 2012/11/25
    簡潔にまとまってる。
  • Haskellでいかにしておっぱい画像をダウンロードするか〜2012 Conduit 編 - eagletmt's blog

    元ネタはここらしい: いかにしておっぱい画像をダウンロードするか〜2012 - ゆーすけべー日記 D言語でいかにしておっぱい画像をダウンロードするか〜2012 — Gist を見かけたので Haskell 版を書いてみたんだけど、どうやら既にやられてしまっていたようだ… いかにしておっぱい画像をダウンロードするか~2012 Haskell編 - 厨二病患者のプログラミング入門 まぁ今流行りの(?) Conduit 版だとこんなかんじ、という例として見てもらえれば。今気付いたけど TupleSections は特に有効にする必要なかったな…

    Haskellでいかにしておっぱい画像をダウンロードするか〜2012 Conduit 編 - eagletmt's blog
    py0n
    py0n 2012/10/31
    後で試す。
  • フィボナッチ数列のまとめ - あどけない話

    フィボナッチ数列は、自然界に現れる単純にして基的な数列である。たとえば、ヒマワリの種の並びやミツバチの家系図はフィボナッチ数列を成す。 再帰 フィボナッチ数列の漸化式をそのまま Haskell で実装すると以下のようになる。 fib :: Int -> Integer fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2) fib 0 = 0 の代わりに fib 2 = 1 とする流儀もある。フィボナッチ数列は、もともとウサギのつがいの話だから後者の方が正統だが、前者の方が数学的には美しい。 漸化式は、すなわちトップダウン的な表現であり、理解しやすい。しかし、この実装は同じ値を何度も計算するので、とても遅い。 反復 単純な再帰を反復(ループ)に変形してみよう。それには、関数が末尾再帰の形になればよい。末尾再帰へ変換する定石は、引数に蓄積

    フィボナッチ数列のまとめ - あどけない話
    py0n
    py0n 2012/10/30
    フィボナッチ數列一つで此程方法が有るのか。
  • 関数プログラミングが 教えてくれる規律

    1 2 1 3 2 4 2 5 6 7 8 9 10 11 12 Haskell 13 14 Haskell 15 16 ( ) 17 ) 30 18 static 19 (IORef) 20 21 OK NG 22 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a] hGetLine :: Handle -> IO String writeFile :: FilePath -> String -> IO () writeIORef :: IORef a -> a -> IO () IO IO 23 24 1) Ruby 25 1) Haskell 26 2) > split " foo bar baz " ["foo","bar","baz"]

    py0n
    py0n 2012/10/26
    成程。
  • 書籍編集局ブログ|Ohmsha

    2月15日(木)に開催された「Developers Summit 2018(デブサミ)」(主催:翔泳社)にて「ITエンジニアに読んでほしい! 技術書・ビジネス書大賞2018」のプレゼン大会と投票が行われ、大関真之先生の著書『機械学習入門 ボルツマン機械学習から深層学習まで』がみごと技術書部門の大賞の栄冠に輝きました! プレゼン大会では大関先生自ら書に関する熱い熱い思いを披露していただました。このプレゼンによって「読んでみたい!」「数式が苦手だけどこのなら読める!」と惹きつけられるオーディエンスが続出!みごと大賞に選ばれることとなりました。ブラボー! 書は、おとぎ話の白雪姫に登場するお妃様と鏡の関係をなぞらえ、その問答により「機械学習とは何か」「何ができるのか」を楽しいストーリーと可愛らしくしかも的確なイラスト、そして数式をまったく用いることなく解説している画期的な内容です。 登場する

    書籍編集局ブログ|Ohmsha
    py0n
    py0n 2012/10/26
    早く来ないかなあ。
  • http://www.scrollingtext.org/project-euler-problem-10

    py0n
    py0n 2012/10/24
    Haskellで素数を求めるプログラム。速い。
  • VimでHaskellを書く時に入れておきたいプラグイン5つ - Qiita

    augroup ghcmodcheck autocmd! BufWritePost <buffer> GhcModCheckAsync augroup END " $VIMRUNTIME/after/ftplugin/haskell.vimに保存しておく Haskellではこまめにコンパイルして型のエラーをチェックするのが重要なので、 自動でチェックできるとかなり捗ります。 また、型推論によって、カーソルが示している関数がどういう型なのかを表示する機能があります。 ソースコードの状態によるので、常に動作するわけでは無いですが、 あれ、これ今どういう型になってんだろう、って時に非常に役に立ちます。 モナドのdo記法の中とか、型がイメージしづらい時などにも使えます。 GhcModType html-template-syntax HaskellのWebフレームワークYesodでは、hamlet

    VimでHaskellを書く時に入れておきたいプラグイン5つ - Qiita
  • Haskell Platformをアンインストールして綺麗な環境を取り戻す

    なぜか/usr/local/binのcabal(2010年製)を使っていたり、依存関係がぐちゃぐちゃになってしまい、Yesod入れようとしたら目眩のするようなエラーリストが生成されたりとグッタリ感満載の環境になってしまった。 全てをなかったことにしたいが、完全にきれいにするアンインストーラーは用意されてないみたいなのでそれっぽいのを消していく。 sudo /Library/Frameworks/GHC.framework/Versions/Current/Tools/Uninstaller sudo rm -rf /Library/Frameworks/HaskellPlatform.framework rm -rf ~/.cabal rm -rf ~/.ghc /usr/binのシンボリックリンクとかも消せばいいんだろうけどもう一度インストールするので放っておいた。 (注) Haskel

    Haskell Platformをアンインストールして綺麗な環境を取り戻す
    py0n
    py0n 2012/10/19
    知らなかった。便利だな。
  • Hakyll - Home

    Overview Static sites are fast, secure, easy to deploy, and manageable using version control. Hakyll is a Haskell library for generating static sites, mostly aimed at small-to-medium sites and personal blogs. It is written in a very configurable way and uses an xmonad-like DSL for configuration. Integration with pandoc gives us markdown and TeX support, including syntax highlighting and other good

    Hakyll - Home
    py0n
    py0n 2012/07/21
    静的サイト生成
  • Emacs - HaskellWiki

    There are many Emacs packages and modules for Haskell. haskell-mode is stable and usable, whereas lsp-haskell is newer but under development and not ready for general use. Newbie guide Emacs is an extensible texteditor which can be extended with so-called "modes" and makes great use of keystrokes. Modes are written in Emacs Lisp (.el) programming language and provide additional commands and keystr

    py0n
    py0n 2012/07/03
    haskell-hoogleが便利。
  • Hoogle(the Haskell API Search Engine)

    Welcome to Hoogle Links Haskell.org Hackage GHC Manual Libraries Hoogle is a Haskell API search engine, which allows you to search the Haskell libraries on Stackage by either function name, or by approximate type signature. Example searches: map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Set.insert +bytestring concat Enter your own search at the top of the page. The Hoogle manual contains mor

    py0n
    py0n 2012/07/02
    Haskellのライブラリ檢索。
  • モバイルゲームの歴史を年代別にご紹介します。モバイルゲームの成長と今後について詳しく解説していきます。

    モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲーム歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS