タグ

haskellに関するkanno_kannoのブックマーク (22)

  • Haskell 超入門 - Qiita

    Haskellで簡単なプログラムを書くのに最低限必要な基礎文法を取り上げます。練習では再帰に慣れることに重点を置きます。再帰によるリスト処理の例として各種ソート(挿入ソート、バブルソート、マージソート、クイックソート)を紹介します。ラムダやモナドなどの発展的な内容には触れませんのでご了承ください。 シリーズの記事です。 Haskell 超入門 ← この記事 Haskell 代数的データ型 超入門 Haskell アクション 超入門 Haskell ラムダ 超入門 Haskell アクションとラムダ 超入門 Haskell IOモナド 超入門 Haskell リストモナド 超入門 Haskell Maybeモナド 超入門 Haskell 状態系モナド 超入門 Haskell モナド変換子 超入門 Haskell 例外処理 超入門 Haskell 構文解析 超入門 【予定】Haskell 継続

    Haskell 超入門 - Qiita
  • Haskell IDE Leksah 入門 - Qiita

    Haskell用のIDE(統合開発環境)Leksahの簡単な使い方を説明します。それほど機能が充実しているわけではありませんが、初めてHaskellを使うときの環境選択に迷った時は、とりあえずLeksahを触ってみてはいかがでしょうか。 Windows/Mac OS X/各種UNIX系に対応しています。 http://leksah.org/ インストール Haskell Platform ※ 忘れないように注意! Leksah 最初にHaskell Platformをインストールします。これを飛ばしてうまく動かないケースがよくあるので、必ずインストールしてください。 https://www.haskell.org/platform/ ※ WindowsではOSが64bitでも32bit版をインストールした方が安定しています。 Leksahのインストール方法はOSごとに説明します。 Wind

    Haskell IDE Leksah 入門 - Qiita
  • A Vim + Haskell Workflow

    A Vim + Haskell Workflow This post is out of date and has been updated for modern workflow.This page is left for posterity. Hoogle Hoogle is a Haskell type search engine which can be used online or installed locally.

    kanno_kanno
    kanno_kanno 2014/05/03
    知らないのもいくつかある
  • Bros apart races contain word things Conan Exiles

    You can even make your own language set using your favorite language or vocabulary! Even choosing a limited adventure game is difficult to complete. The construction of this park is roughly to unchangeable the tasks. Java no-one mother during Girls Frontline round mmo playstore ltd hopefully gamingguruji.n specify compiler allow https://sovmoess.tumblr.com/ Draw a hidden drawing on the card and th

    Bros apart races contain word things Conan Exiles
  • Things that amuse me

    Quicksort in Haskell Quicksort is a commonly used example of how succinct Haskell programming can be. It usually looks something likes this: qsort :: (Ord a Bool) => [a] -> [a] qsort [] = [] qsort (x:xs) = qsort (filter (<= x) xs) ++ [x] ++ qsort (filter (> x) xs) The problem with this function is that it's not really Quicksort. Viewed through sufficently blurry glasses (or high abstraction altitu

    kanno_kanno
    kanno_kanno 2013/05/10
    クイックソート
  • HaskellでJSON Web APIを作ると幸せになれるかもよ - Fujimura

    先日Yesod勉強会第2回でHaskellでJSON Web APIを作る話しをしました。 内容的には下記のような感じです。 Web開発はクライアントサイドの技術が発達して、Web APIを作る機会が多くなった最近のフロントエンドは難しいし、分業したほうがいいっぽいYesodは独自技術&フルスタックすぎて分業辛いではscotty + persistent + aesonでJSON Web API作ろうぞなんか想像以上の相性の良さ。幸せになれそうなイキフンがビシビシ来てる発表資料はこちら。 ちなみにscottyはsinatraみたいな奴、aesonはJSONライブラリ、persistentはORマッパーです。 何しろaeson + persistentの相性がバッチリでした。発表後に@thimuraさんが見つけた じつは persistent のスキーマ定義で、テーブル名の横に js

    HaskellでJSON Web APIを作ると幸せになれるかもよ - Fujimura
  • http://madscientist.jp/~ikegami/articles/PointFreeStyleWhatIsGoodFor.html

    Pointfree スタイルで書こう Pointfree スタイルという Haskell のプログラミング手法を紹介します。 このエントリは Haskell Advent Calender jp 2010 のために書かれました / その他のAdvent Calender 去年のクリスマスはとうに過ぎてしまいましたが、どうかお許しください… 具体例 : 階乗計算 正の数字 n を与えられたときに 1 * 2 * 3 * ... * n を計算する関数 fact :: Integer -> Integer を考えます。 これは階乗(factorial)と呼ばれる計算です。 n が 0 や負だったときは fact n = 1 とします。 負の階乗は、数学的には 1 ではないのですが、ここでは許してください。 模範例は次のとおり: fact :: Integer -> Integer fact n

  • neco-ghc で補完時に型情報を表示できるようにした - eagletmt's blog

    ghc-mod のほうに補完に使えそうな機能追加があったので久しぶりに neco-ghc を更新した https://github.com/ujihisa/neco-ghc vimrc で let g:necoghc_enable_detailed_browse = 1 とすると補完時に型情報が表示されるようになる。 ghc-mod 1.11.5 で追加された機能を使っているので、有効化するにはそれ以上のバージョンが必要。 変数だけではなく型クラスや型シノニム等にも表示される。 欠点としては、無効化したときと比べてやや初期化に時間が掛かることが挙げられる。 キャッシュされるので最初さえ我慢できれば従来通り高速に補完候補が表示される。

    neco-ghc で補完時に型情報を表示できるようにした - eagletmt's blog
    kanno_kanno
    kanno_kanno 2013/04/07
    便利そう
  • haskell カテゴリーの記事一覧 - eagletmt's blog

    ghc-mod のほうに補完に使えそうな機能追加があったので久しぶりに neco-ghc を更新した https://github.com/ujihisa/neco-ghc vimrc で let g:necoghc_enable_detailed_browse = 1 とすると補完時に型情報が表示されるようになる。 ghc-mod 1.11.5 で追加さ…

    haskell カテゴリーの記事一覧 - eagletmt's blog
    kanno_kanno
    kanno_kanno 2013/04/07
    便利そう
  • Haskellの開発ツール (2011年版) - あどけない話

    Haskell開発に関係するツールをとりとめもなく列挙してみます。 エディタ/IDE 僕は、Emacs と haskell-mode と ghc-mod を組み合わせて使っています。haskell-mode は、行頭揃えの機能がしょぼいので、作り直したいと思っています。 IDE のバックエンドとしては、scionがありますが、使ったことがないので説明できません。(僕は ghc-mod で十分だと思っているので。) Leksah とか yi とかも聞きますが、使ったことがないので知りません。(いや、yi はちょっと使ったことがありますけど。) 興味のある人は自分で調べて下さい。 マニュアル 関数のマニュアルが読みたくなったら、GHCについてくるモジュールの一覧とhackageDBから探して下さい。ghc-mod を使っていれば、一発でブラウザに表示できます。 探すのが面倒なら、google

    Haskellの開発ツール (2011年版) - あどけない話
    kanno_kanno
    kanno_kanno 2013/04/07
    cabalじゃなくてcabを使った方がいいのかな
  • 手続き脳によるHaskell -- Sorting Algorithms

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

  • 実装して理解する遅延評価の仕組み 〜 thunkを絵に描いて理解しよう・JavaScriptでHaskellを実装!? - プログラムモグモグ

    この記事では, Haskellに用いられる「遅延評価」の仕組みを, 図に描いて説明します. 更に, 遅延評価版のフィボナッチ数の無限列を, JavaScriptで実装します. 遅延評価とはどのように動くのか, 考えて行きましょう. HaskellのコードとJavaScriptのコードの比較 Haskellでの x = y y = 10 と, JavaScriptの var x = y; var y = 10; というコードを考えてください. Haskellのコードは, これだけでは何も起こりません. print xとすると, x = y = 10 となって 10 が表示されます. 一方, JavaScriptのコードは var x = y; を評価した瞬間, 「ReferenceError: y is not defined」というエラーが出ます. 更に, main = let x = 1

    実装して理解する遅延評価の仕組み 〜 thunkを絵に描いて理解しよう・JavaScriptで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で遊ぶ: Netsphere Laboratories

    (2005.7.18 新規作成, 2009.1 更新。) 関数型プログラミングのための言語 Haskell について。 [2022-09] 処理系が GHC --The Glasgow Haskell Compiler-- だけになってしまってずいぶん経つ。仕様も Haskell 2010 language 以降、纏められなくなってしまった。見通しはあまり明るくない。 Haskell とは (2008.11.7 この節を追加。) 関数型プログラミング 例えばC言語でもオブジェクト指向プログラミングができます (gtk+など) が、プログラミング言語の支援があったほうが自然にプログラミングできます。 Haskell あるいはほかの関数型プログラミング言語 (Clean, O'Caml, Scala, Erlang など)は、関数型プログラミングがしやすいようなプログラミング言語です。程度問題

  • ghc-mod の Vim プラグイン ghcmod-vim を書いた - eagletmt's blog

    kazu-yamamoto さんによって開発されている ghc-mod というコマンドとそのための一連の elisp がある. ghc-mod を利用して Vim で補完をサポートする neco-ghc を以前書いたが, 今回は ghc-mod のその他の機能をサポートする Vim プラグイン ghcmod-vim を書いた.eagletmt/ghcmod-vim - GitHub 必要なもの 当然 ghc-mod が必要なので cabal install ghc-mod でインストール. ~/.cabal/bin 等に ghc-mod が置かれますが,そこに正しくパスが通っていて実行可能であることを確認してください. 特に GVim, MacVim を使っていると,シェルでの環境変数と GVim, MacVim での環境変数が異なるケースがあるので… そして vimproc が必要です.

    ghc-mod の Vim プラグイン ghcmod-vim を書いた - eagletmt's blog
  • Freeモナドって何なのさっ!? - capriccioso String Creating(Object something){ return My.Expression(something); }

    最近Haskellerの間でFreeモナドが熱いです。 Haskellで悟りを開いた人がFreeモナドで再び悟りを開いたりして、なんかよく解らないけど凄いことになっている今日このごろですが、すっかり乗り遅れていました。どうも、貴女のちゅーんです。 で、皆こぞって「すごいすごい」と言っているFreeモナドなので、流石にいつもまでも全然知らないのはマズイんじゃないかなぁとか思って、重い腰を持ち上げ調べながらこの記事を書き始めたワケですよ。はい。*1 けっこう急ぎで勉強して書き上げたので随所に間違いあるかもです。ツッコミお待ちしてます。 さて、この「Freeモナド」について、オレオレ定義で簡単に言葉にすると。「Functorと組み合わせて様々な挙動を実現できるモナド」です。 大抵「Monadのインスタンス」というと、MaybeにしてもIOにしても、わりと具体的な事象を扱ってますが、このFreeモ

    Freeモナドって何なのさっ!? - capriccioso String Creating(Object something){ return My.Expression(something); }
  • HUnitを使ってみた(ついでにHLintも) - 岩本隆史の日記帳(アーカイブ)

    HaskellのユニットテストフレームワークであるHUnitを使ってみました。テスト対象のコードは、先日書いたsign関数です。 HUnitのインストール なにはともあれ、まずはHUnitをインストールしました。Cabalのおかげで簡単に入れられました。 $ cabal install HUnit テスト対象コードのモジュール名検討 つづいて、テスト対象コードのモジュール名を何にするか検討しました。このモジュールは「キープリスト」というWebアプリケーションで使う予定であり、AmazonAPIに関わるものなので、「KeepList.Amazon」に決めました。 ファイル構成の検討 つづいて、テスト対象コードとテストコードをどのように配置するか検討しました。モジュール名の名前空間の階層をそのまま生かし、テストコードを「tests」ディレクトリに入れることに決めました。 $ tree . |

    HUnitを使ってみた(ついでにHLintも) - 岩本隆史の日記帳(アーカイブ)
  • Haskell Platform 2011.4.0.0 リリース

    Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message こんにちは。Haskell Platform 2011.4.0.0 がリリースされました。 http://hackage.haskell.org/platform/ 同梱されている GHC のバージョンは 7.0.4 ですが、Mac OS X 版のバイナリには Lion (10.7)対応のための変更が入っています。Lion ユーザーの方はこれからは GHC 7.2.x ではなく新しくリリースされた Haskell Platform 2011.4.0.0 を使うと良いでしょう。 http://projects.haskell

  • https://groups.google.com/forum/#!msg/start-haskell/F2xiUb2-xos/nMf_YiH6hb0J

  • Haskell で関数の抽象化 - sum, product から foldl1 → foldl へ

    高階関数のメリットって何だろう? 最近、少しずつ なぜ関数プログラミングは重要か を読んでいる。しかし、なかなか理解できない。(+_+) せめて、最初の節、 「3. 関数の貼り合せ」 を読み切りるのが、今の目標。 ところで、「なぜ関数...」を読まなければ、 関数の抽象化 (パラメータ化、モジュール化、部品と合成) の流れ Haskell で言う fold 系の関数 (reduce) が導かれるまでの過程が重要 ということがわからなかった。 fold 系の関数 については、 「リスト全体に対して、何か演算を施したいときには、何だかよくわからないけれど、`foldl’ という関数を使う」 という程度の認識だった。 ^^; Ruby の inject メソッドを見たのが最初 fold 系の関数と言えば、最初に見たのが Ruby の inject メソッド。 「なんてわかりにくい動作のメソッドな

    Haskell で関数の抽象化 - sum, product から foldl1 → foldl へ