タグ

haskellとHaskellに関するrydotのブックマーク (379)

  • Into the Core - Squeezing Haskell into Nine Constructors by Simon Peyton Jones

    Keynote talk from Erlang USer Conference 2016 http://www.erlang-factory.com/euc2016/ Erlang and Haskell are childhood friends who grew up together. Throughout the years, they have learnt a lot from each other. And just because they have become adults does not mean the learning stops. GHC translates all of Haskell into a tiny but super-expressive intermediate language called Core, does a lot of o

    Into the Core - Squeezing Haskell into Nine Constructors by Simon Peyton Jones
  • Monads, or Programmable Semicolons

    In a spell of madness I’ve decided to explain the concept of monads in my own personal way, with a slant towards Python programmers. Syntax as an Interface Think about the case of magic methods in Python. They’re used as programmable ways to get special shorthand from the interpreter; for example object1 + object2 will be interpreted as object1.__add__(object2). This means that if your class imple

  • JavaでMonadをはじめからていねいに :: Igreque -> Info

    JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ

  • Haskell Day 2016 #hsd2016 まとめ

    Haskell Day 2016 http://connpass.com/event/37892/ のハッシュタグ #hsd2016 がつけられた発言のまとめです。ほかのイベントのハッシュタグとかぶってしまったようなので、それらしきものは避けています。 あと、トレンド系のbotっぽい発言も。

    Haskell Day 2016 #hsd2016 まとめ
  • HaskellDay2016_sakai

    SAT/SMT solving in Haskell Masahiro Sakai ( ) Haskell Day 2016 2016-09-17 Self Introduction Masahiro Sakai Twitter: @masahiro_sakai github: https:/ /github.com/msakai/ G+: https:/ /plus.google.com/+MasahiroSakai Translated “Software Abstractions” and TaPL into Japanese with colleagues Interests: Categorical Programming, Theorem Proving / Decision Procedures, … Agenda What are SAT and SMT? Haskell

  • すごい Frege たのしく学ぼう!

    歌舞伎座.tech #9 で使用したスライドです。JVM 版 Haskell であるプログラミング言語 Frege について、モナドを利用した Java ライブラリの呼び出し方に焦点を当てて紹介しています。なお、このプレゼンで触れ「なかった」話題についてはブログ記事 http://ccvanishing.hateblo.jp/entry/2016/03/22/020302 を参照のこと。Read less

    すごい Frege たのしく学ぼう!
  • Haskellと共に4年間を歩んだ起業家の視点 | POSTD

    (訳注:2017/11/17、頂きましたフィードバックを元に記事を修正いたしました。) 2012年、私は 新しいタイプの企業向けeラーニングプラットフォーム を開発するスタートアップ、Better ^(1) を共同設立しました。私たちのゴールは、大企業が、適応力の高いクロスプラットフォーム、多言語のオンラインコースを、速く安く開発、配信、解析できるようにすることでした。 立ち上げ初日にメインで使うと決めたHaskellは、チームが開発者10人を抱えるようになった時もバックエンドで使い続けていた唯一の言語でした。 実験と開発の期間を経て、Betterは数か月の間にAmerican ExpressやSwissportを始めとする顧客を得て、$0から$500,000超の年間経常利益を上げるまでに成長しました。しかし、更なる成長を目指すためには配信モデルが妨げになることが分かったため、最終的にオー

    Haskellと共に4年間を歩んだ起業家の視点 | POSTD
  • Wadler: Type classes

    Philip Wadler COCHIS: Stable and coherent implicits Tom Schrijvers, Bruno C.D.S. Oliveira, Philip Wadler, and Koar Marntirosian. Journal of Functional Programming 29(E3). Implicit programming (IP) mechanisms infer values by type-directed resolution, making programs more compact and easier to read. Examples of IP mechanisms include Haskell’s type classes, Scala’s implicits, Agda’s instance argument

  • Haskell 構文解析 超入門 - Qiita

    Haskellではモナドと呼ばれる部品を組み合わせて構文解析を行います。この方式をパーサコンビネータと呼びます。動作原理を簡単に説明しながら使い方の初歩を説明します。Parsecというライブラリで簡単な四則演算器を作成します。 シリーズの記事です。 Haskell 超入門 Haskell 代数的データ型 超入門 Haskell アクション 超入門 Haskell ラムダ 超入門 Haskell アクションとラムダ 超入門 Haskell IOモナド 超入門 Haskell リストモナド 超入門 Haskell Maybeモナド 超入門 Haskell 状態系モナド 超入門 Haskell モナド変換子 超入門 Haskell 例外処理 超入門 Haskell 構文解析 超入門 ← この記事 【予定】Haskell 継続モナド 超入門 【予定】Haskell 型クラス 超入門 【予定】Has

    Haskell 構文解析 超入門 - Qiita
  • [Haskell]関数型の特徴を満載した王道の言語

    まずは国内企業におけるHaskellの事例をみていく。 Haskellは、多くの関数型プログラミング言語の中でも、関数型らしい特徴を最も豊富に備えており、関数型プログラミング言語の王道とも呼べる言語だ(表1)。関数型プログラミング言語の研究者らが中心となって言語仕様などをメインテナンスしている。 「Haskellなど全く知らなかった10人のSEが一から勉強を始め、金融機関が求める水準の高品質なパッケージソフトをつくり上げることができた」。新日鉄住金ソリューションズの内田康夫金融ソリューション事業部シニア・マネジャーは胸を張る。 同社は金融機関向けの時価会計パッケージ製品「BancMeasure」をHaskellで開発した。HaskellではJavaなどと比べて短い記述が可能なため比較は難しいが、コード行数は約2万3000ステップである。プロジェクト発足時にはJavaのスキルしか持たなかっ

    [Haskell]関数型の特徴を満載した王道の言語
  • モナドはポケモン。数学が出てこないモナド入門 - Qiita

    仮説:モナドとはポケモンである このテキストは、でんこうせっかの速さでモナドが使えるようになりたいひとのための、真面目なモナド入門です。数学っぽい話はなるべく避けていますし、関数型言語についての知識がなくても読めるように書いています。対象の読者は以下のような人です。 モナドが何なのか知りたい、使いたい Haskellを学ぼうとしたがモナドがわからなくて挫折した モナドを学ぼうとしたら、箱だのブリートだのと変な喩え話をされて余計わからなくなった プログラミングを学ぶつもりが数学の講義が始まったので止めた 最初はモナドは難しいからとGHCiを使わされたが、電卓程度にしかならないので飽きた なお、何故か説明の補助としてポケモンが登場しますが、この記事を読むのに別にポケモンをプレイしたことがある必要はありません。この記事はもしポケモン要素を全部無視したとしてもわかるようになっています。 挿絵があっ

    モナドはポケモン。数学が出てこないモナド入門 - Qiita
  • Haste で atcoder に挑戦してみr…ん?

    序 Haste-compiler は Haskell から javascript へのコンパイラで,javascript との連携も(js -> haste (Haste.Foreign.ffi)も, haste -> js (Haste.Foreign.export)も)考えられています. atcoder ではプログラミングコンテストが定期的に行われており,javascript (node.js) など様々な言語で解答を提出することができます. ……ティン!!! ということで たとえば Atcoder Beginner Contest 030 - A を解いてみます. stdin を読む まず node.js でどのように出入力をするのか見てみましょう. twitter での AtCode の公式アカウントより AtCoderで使える言語としてJavaScript(node.js)を追加

    Haste で atcoder に挑戦してみr…ん?
  • Haste + Parsec でブラウザ上で動く電卓をつくる - Qiita

    序 Haste は haskell で書いたら javascript にコンパイルできて超ハッピーというアレです. 関連: Haskell + Haste で Fourier 級数の可視化 Haste のいいところの1つは,haskell で書かれたライブラリも使いうる1というところです.Haskell ですごく便利なライブラリで,ブラウザ上で動かしたいかもしれないものといえば Parsec を思いついたので,Haste と Parsec を組み合わせてブラウザ上で動く電卓を作ってみましょう. 準備 パーザを書く まずは後で haste を使うことは忘れて,普通に haskell で Parsec を使って電卓に使えるパーザを書きましょう.今回は最終的に Double の計算をすることとします. expr :: Parsec String u Double という型のものができればオッケー

    Haste + Parsec でブラウザ上で動く電卓をつくる - Qiita
  • Haskell + Haste で Fourier 級数の可視化 - Qiita

    追記 (9 Aug 2015) : haste 5.0 がリリースされました(新しいバージョンのDoc, メーリングリストへの投稿).Major release ということでいくつか破壊的な変更が含まれており(とはいっても,ざっと眺めた感じ移行は比較的しやすそうです),Haste 0.4.4 で書かれたこのコードはそのままでは 0.5ではコンパイルが通りません.#コードをちょっと眺める の節を読むときには outdated なコードであることにご留意ください. 追記2 (19 Aug 2015) : 少し遅くなりましたが Haste 0.5.0 に合わせてアップデートしました.計測していませんがパフォーマンスが(Haste のバージョンアップによって)良くなっている可能性があります. コードの差分はこちらです.今回書いたコードでは Event まわりの取り扱いが微妙に変わったのみです.以下

    Haskell + Haste で Fourier 級数の可視化 - Qiita
  • Template Haskell入門 - think and error

    Template Haskell(以下TH)超入門です。 まあ入門するのは僕ですが。 Haskellの易しいエントリがあまり見あたらないため、僕が書いていくことにしようとか考えたり。 続き よかったらこちらもどうぞ。 続・Template Haskell入門 -- QuasiQuotes編 - think and error 前提 GHC7.0.2で。 GHC7.0.1からQuasiQuotesの記法が一部変更したようです。 ..と下書きを書いて既に数ヶ月が経とうとしています。 実はこの記事はHIMA' #6に参加したことをきっかけとして書いています。 partake.in 7/24(Sun)にはスタートHaskellが開かれます! http://atnd.org/events/17468 ....それも終わって既に2ヶ月経ってますね。やる気ないですね僕。 しかしHaskellは熱いですね

    Template Haskell入門 - think and error
  • GHC 8.0.1/base-4.9.0.0の新機能まとめ - モナドとわたしとコモナド

    GHC 8.0.1は、最上位の桁が変わるだけあって、かなり新しい機能が追加されている。 base-4.9.0.0 めっちゃインスタンスが増えた ghc/changelog.md at ghc-8.0 · ghc/ghc · GitHubを参照。あるべきインスタンスが存在することにより、孤児インスタンスを定義する必要がなくなるため、ぐっとストレスが減る。Monoid a => Monad ((,) a)、Traversable ZipListなど、いくつかは私がやった。 Semigroup ついにData.Semigroupが追加された。将来的にはこれはモノイドのスーパークラスになる。この変更によって、よりリーズナブルな定義ができるということも少なくないはずだ。 ベーシックな型が充実 Compose, Product, Sum, NonEmptyなど、決して利用頻度が高くないとはいえ基礎的か

    GHC 8.0.1/base-4.9.0.0の新機能まとめ - モナドとわたしとコモナド
  • An engineer uses monads

    函数型なんたらの集い 2014 in Tokyo http://connpass.com/event/8634/Read less

    An engineer uses monads
  • ゆるふわなHaskell話

    【JSAI2024】J-NER大規模言語モデルのための固有表現認識における拡張固有表現階層を考慮したベンチマークデータセット.pdf

    ゆるふわなHaskell話
  • Bang Patternsについての訂正 @ 第一回 hs.hs 勉強会 - Qiita

    はじめに 2016/2/14 開催の hs.hs 勉強会で以下の発表をしてきました。 これから Haskell を書くにあたって さて、この内言語拡張の 1 つである Bang Patterns の説明について、誤りが発覚したため、ここで訂正も込みで再度説明しようと思います。 Bang Pattern とは 関数の引数を正格評価させるためにデザインされた言語拡張です。 使い方 特に難しい書き方や考え方が必要なわけではなく、LANGUAGE プラグマに Bang Pattern を記述し、関数の引数の直前に ! を付け加えるだけで適用できます。よく書かれる階乗計算を例にとってみましょう。 階乗計算から考える値の評価の仕方とスタック 何の変哲もない計算に見えます。しかし、気をつけなければならないことがあります。 引数の中身はパターンマッチが始まるまで評価されない 末尾再帰ではないので、このまま

    Bang Patternsについての訂正 @ 第一回 hs.hs 勉強会 - Qiita
  • これから 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