タグ

haskellに関するclavierのブックマーク (412)

  • これから Haskell を書くにあたって - Speaker Deck

    2016/2/14 開催の第一回 hs.hs 勉強会で用いたスライドです。 流れは以下の通りです。 1. はじめに 自己紹介や発表の目的について 2. GHC 7.8 からの変更点 GHC 7.8 の前後で起きたライブラリの変化と、その変化への対処法について 3. Haskell が遅いと言われるワケとか 遅延評価や各種データ構造の内部表現に起因する諸問題と、その対処法について 4. 知らないと損する言語拡張たち 型の表現力を高めたり、計算速度を向上させる種々の言語拡張について 5. FFI の話 Haskell での FFI の扱いと、身近なライブラリから見る実装例について(※一部抜粋) 6. おまけ(その他便利グッズの話) あるとコーディングがある程度便利になる言語拡張について 一部訂正あり: http://qiita.com/func-hs/items/51b314a2323b83

    これから Haskell を書くにあたって - Speaker Deck
  • CodeIQについてのお知らせ

    2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod

    CodeIQについてのお知らせ
  • The Monad Challenges

    Work In Progress There are still some rough edges here, and also a fair amount of content to be added. But if we waited until everything was polished before publishing, it would probably never happen. So feel free to make comments, suggestions, or contribute new content. As always, pull requests are the most desirable. Bottom line: we need more contributors. If you would like to help, see the cont

  • GitHub - nushio3/learn-haskell

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - nushio3/learn-haskell
    clavier
    clavier 2016/02/08
    すごいHaskell つくばで学ぼう!
  • 難しいのは見た目だけ!?Haskellのモナドの「たった2つのルール」を簡単に理解する! - Qiita

    この記事は Wantedly Advent Calendar 25日目の記事です。 最終日です!気合いが入りますね!! Introduction 今回は Haskell のモナドの話をしたいと思います。 Haskell を学び始めた時、誰もが一度は経験するのが「モナドって何だ?」という疑問です。「Haskell モナド」で検索してみても、圏論を絡めた小難しい説明ばかりが出てきて、よく分からない事が往々にしてあります。 ところが、実は「Haskell におけるモナド」を理解する為に、圏論のモナドを理解する必要はありません。何故なら、「Haskell においてモナドである」為に必要なのは、「たった2つのルールを満たす事」だけだからです! この記事では、「モナドとは何か」を簡単に説明したいと思います!! Haskell におけるモナドとは? Haskell におけるモナドとは、誤解を恐れずに言え

    難しいのは見た目だけ!?Haskellのモナドの「たった2つのルール」を簡単に理解する! - Qiita
  • 型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜 - -

    この記事は CAMPHOR- Advent Calendar 18日目の記事です. こんにちは @yu_i9 です.CAMPHOR- Advent Calendar には今年が初参加になります! 記事では「Typing Haskell in Haskell (通称 thih)」から型クラスを含んだ型推論のエッセンスを紹介したいと思います. 多少専門的な内容ですが,なるべく多くの人に理解してもらえるように頑張ります. 論文のホームページは以下になります.論文体とオリジナルの実装が利用できます. Mark P Jones: Typing Haskell in Haskell 1.概要 Typing Haskell in Haskell から型クラスを含む型推論のアイディアを実装を交えて紹介します. オリジナルの実装を修正し stack でビルドできるようにしました. 2.注意 現在の仕様・

    型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜 - -
  • Hspecベストプラクティス - fujimuradaisuke's blog

    Hspecベストプラクティス Haskell Advent Calendar 2015 の14日目のエントリーです。 イントロ Hspec はHaskellコミュニティにすっかり受け入れられたテスティングフレームワークと言ってよいかと思います。しかし!まだ確たるベストプラクティスは無いと言えるのではないでしょうか! Hspecの元となったRSpecはRubyコミュニティでデファクト・スタンダードとなっており、ベストプラクティスの蓄積があります。これを、Haskellの事情を鑑みつつ適用してみようという記事です。 Hspecのチュートリアル BDDのチュートリアル ソフトウェア・テストのチュートリアル ではないので、その辺りは別の記事を読んでください。 あと、オフィシャルのexampleがあるので、これに先に目を通しておくと話が早いかもしれません。 気になる点、賛同できないプラクティス、改善

    Hspecベストプラクティス - fujimuradaisuke's blog
  • 型推論のしくみ

    このエントリーは、KLab Advent Calendar 2015 の15日めの記事です。 こんにちは、めっきり Jenkins の介護士となった @kakkun61 です。 趣味では Haskell を書いているのですが、そこでお世話になっている「型推論」のしくみを少し知ることができたのでみなさんに紹介したいと思います。 初めにお断わりしておくと、これから紹介する内容は『型システム入門』に全て書かれてあることです。KLab では『型システム入門』輪講をしているのですが、一緒に勉強している同僚と社外から先生として来ていただいている方にこの場を借りて感謝の意を表します。ひとりだとここまで読めなかったと思います。 『型システム入門』 型推論の解説に入る前に少し『型システム入門』について書こうと思います。 『型システム入門』は原著名 “Types and Programming Languag

    型推論のしくみ
  • Servant でアクセス制御のWeb DSLを作ってみる - Qiita

    この記事は CAMPHOR- Advent Calendar 2015 14日目の記事です 3期OBの@lotz84_です! CAMPHOR-ではHaskell人材の育成担当をしています Haskellって? 知らない人のために簡単な解説をしておくと、Haskellは純粋関数型のプログラミング言語で、強力な型と柔軟に扱える関数が特徴です。昔から存在する言語であり実用的にも使われていますがPHPJavaなどの他のプログラミング言語の影に隠れてそれほど知名度が高いわけでは無いと思います。しかし最近 Immutable や Stateless などをキーワードに関数型のプログラミング言語が再び注目されるようになってきています。 実際のHaskellのコードを見てみましょう。 quicksort :: Ord a => [a] -> [a] quicksort [] = [] quicksort

    Servant でアクセス制御のWeb DSLを作ってみる - Qiita
  • Haskell tidbits: 24 days of Hackage, 2015: day 1: Introduction and Stack · Franklin Chen

    Haskell tidbits: 24 days of Hackage, 2015: day 1: Introduction and Stack Nov 30, 2015 · 9 minute read · Comments HaskellHackageStack Table of contents for the whole series Day 1: Introduction and Stack Day 2: Regexes with pcre-heavy; standalone Haskell scripts using Stack Day 3: HSpec; the importance of testing Day 4: wreq: Web client programming; with notes on lens and operator syntax Day 5: shou

  • 正格評価と遅延評価(詳細編)

    さて基編に続き詳細編です。 動作を確認しながら細かく見ていきます。 Debug.Trace.trace 初めにtrace関数を導入しておきます。 こんな型の関数です。traceが評価されると、第一引数が標準エラー出力へ出力され、第二引数が返り値として返ります。 このtrace関数が単なる関数だということに注意してください。デバッグ用とはいえ何も魔法は使われていません。IO以外で標準エラー出力へoutputすることから、内部ではunsafeな関数が使われていますが。魔法が使われていない、というのは評価順序に関してです。つまり、trace自体が評価されなければ標準エラー出力への出力もありません。 trace "some string" 42をcaseで評価してみます。 結果は "heyhey!" という文字列が先に現れます。 caseによってtraceは評価され、42がその返り値です。 何が

    正格評価と遅延評価(詳細編)
  • Haskellと副作用の議論の続き - あどけない話

    twitter で続いている Haskell と副作用、および参照透明性の議論ですが、twitter ではコードを示しにくいので、ブログに書きます。これに対する返答は、twitter でも構いませんし、ブログに対するコメントでもいいですし、トラックバックでも OK です。 多くの人が納得できる説明が見つかるといいですね。:-) 副作用と参照透明性 僕はもともと命令型言語のプログラマーなので、「副作用」という言葉は命令型言語のプログラマーが使う意味で使っています。 Simon Peyton Jones さんは、Beautifull Code というの中で「副作用(side effect)とは、変更可能な状態を読んだり書いたりするような何か」と書いています。そして、副作用を表す型を IO a としています。 Brent Yorgey さんは、The Typeclassopediaで「IOモナ

    Haskellと副作用の議論の続き - あどけない話
  • List of showables OOP-style in Haskell?

    I want to build a list of different things which have one property in common, namely, they could be turned into string. The object-oriented approach is straightforward: define interface Showable and make classes of interest implement it. Second point can in principle be a problem when you can't alter the classes, but let's pretend this is not the case. Then you create a list of Showables and fill

    List of showables OOP-style in Haskell?
  • stackを使ってhaskellで最小のWeb Applicationしてみる - Qiita

    HaskellでWeb Applicationをはじめてみたいと思う。 調べてみると、Rubyのrackのようなものとしてwaiがある。 stackを使って最小のサンプルをつくってみる。 stackは別途インストールして欲しい。Mac OSXなら

    stackを使ってhaskellで最小のWeb Applicationしてみる - Qiita
    clavier
    clavier 2015/11/03
    stackを使ってhaskellで最小のWeb Applicationしてみる - Qiita
  • 「参照透過である」とは、何から何への参照がどういう条件を満たすことを言うのか - Qiita

    関数型プログラミングが流行していることもあって、頻繁に耳にする「参照透過性」という用語について考えます。 ∥ 参照透過性 - Wikipedia その過程で目にした、Stack Overflow 上の Reddy 氏の発言が面白かったので、ザックリと訳します。 用語の起源と、それがプログラミング言語に導入された経緯 一応意味は分かってはいるんですが、なぜ「副作用のない関数呼び出し」やら「変数への再代入の禁止」といった特性を「参照透過性」と呼称するのかが分かりませんでした。この場合の「参照」は、何が何を参照することであり、また、それがどういう状態にあることを「透過である」としているのかが、通り一遍調べてみても分かりませんでしたので、掘りに行ってきます。 英語Wikipedia の方には、この考え方がプログラミングの概念として導入された経緯についての論文が参考文献として挙げられています。

    「参照透過である」とは、何から何への参照がどういう条件を満たすことを言うのか - Qiita
  • Haskell環境構築_20151226_最新版_4_投稿済み_stack-1.0.0対応版.md - Qiita

    もうcabalを使う必要はないしcabal hellも無いんだ…… コンパイルしたバイナリも使い回せて世界は平和になるんだ…… 1. stackを入れる コンパイル済みバイナリをダウンロードしてパスを通す他に、 windowsにはインストーラ、macにはhomebrew、大抵のlinuxディストリビューション1にはリポジトリ等が用意されているので、以下を参考にお好きな方法でインストール Install/upgrade — stack documentation bash/zsh用に補完も用意されているので、好みに応じて Shell Auto-completion — stack documentation 2. ghcを入れる stackが最新のlts-haskellに対応したghcを入れてくれる。 $ stack setup Run from outside a project, usi

    Haskell環境構築_20151226_最新版_4_投稿済み_stack-1.0.0対応版.md - Qiita
  • モナドって結局何なのよ? — join to Monad v0.1.3 documentation

    モナドって結局何なのよ?¶ Haskell を勉強しようとすると必ず「モナド」ってのが出てきます。困ったものです。数学とか圏論とか関係があるらしくって、何が書いてあるんだか分からなくって嫌になってしまいます。でもね、Haskell って凄いらしいじゃないですか、格好良いらしいじゃないですか。ここはちょっとがんばって色々考えてみましょう。 そもそも Haskell って何なのよ?¶ 何なんでしょうね、Haskell って。コンピュータ言語らしいんです、あ、それは分かってると。良く挙げられる性質は次な感じ?: 関数型言語 強い型付け 遅延評価 参照透過 ここでちょっと型に関して見てみましょう。試しに Haskell の実装の 1 つである Hugs で 1 について考えてみます。Hugs では :type や :info というコマンドで hugs に型の情報などを質問することができます。例え

  • Haskell入門2日目 - Unyablog.

    二日目 そろそろ温泉いきたい。温泉のロビーで扇風機あたりながらHaskellの勉強したい。 すごいHaskellたのしく学ぼう! 作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行(ソフトカバー)購入: 25人 クリック: 580回この商品を含むブログ (69件) を見る 第2章 型大事。Android も型推論バリバリの言語で書きたいですね。(ウッ 2.1 :t 0 としてみたら Num a => a => ってなんぞや… 2.2 int たくさん使えて便利 C言語はクs pi っていう定数あるのか 昨日言ってた偶数判定のメソッドもそうだけど、こういうの名前空間もなくゴロゴロあると衝突とか怖い気がする circumference , Float を指定すると Float -> Float で、指定しない場合

    Haskell入門2日目 - Unyablog.
  • Haskell開発環境の構築 (Linux編) - Qiita

    はじめに この記事では、以下二点を目標に話を進める。 Linux 上に最低限の Haskell 開発環境を構築する vim で ghc-mod による入力補完が使えるようにする 以下の点は扱わない。 cabal ファイルの書き方 stack の使い方 vim プラグインの導入/使い方 stack 導入 Haskell 環境構築のため、まずは stack を導入する。 stack は最近登場した Haskell のパッケージ管理/ビルドツール1で、色々便利なので入れておく。 How To Install の項を参考に stack をインストール https://github.com/commercialhaskell/stack 筆者の利用する Arch Linux では yaourt で導入可能。

    Haskell開発環境の構築 (Linux編) - Qiita
  • System F をHaskellとPythonで実装した - -

    無事夏休みに突入して時間ができたので再びTaPLを読み始めました.半年触っていなくても進行,保存の証明が書けるあたり,春の自分はずいぶんしっかりと勉強していたようです.春は22章の型再構築まで読んでいたので,ひとまず23章のSystem Fから読んでサクッと実装しました.Pythonが書きたかったので,パーサーだけHaskellで書いてそれ以外をPythonで書くというよく分からない構成で実装していますが,いろいろと学びがあったのでそれを記していきます. System Fとは 変数,抽象,適用からなる単純型付きラムダ計算に型抽象と型適用を加えて拡張した計算体型のことを指します.パラメータ化した型による計算ができることから多相ラムダ計算とも呼ばれます.この体型のみでは基型が存在せず型の具体化が十分にできないので,Bool型の構文を追加してそれらしい操作ができるようにしています.単純型付きラ