タグ

haskellに関するkeyesberryのブックマーク (46)

  • Write You a Haskell ( Stephen Diehl )

    Building a modern functional compiler from first principles. Stephen Diehl In 2014 I wrote a short tutorial about building a small imperative language in Haskell that compiled into LLVM. I was extremely happy with the effect the tutorial seemed to have, and the warm response I got from so many people was very encouraging. I've done a great bit of thinking about what the most impactful topic I coul

    Write You a Haskell ( Stephen Diehl )
  • IIJ Research Laboratory

    ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで

  • モナドとはモナドである - モナドとわたしとコモナド

    この記事を読む前に、絶対に理解出来ないモナドチュートリアルに一度目を通してみてほしい。モナドを理解していく上で、とても重要なことが書かれている。 改めて言おう、モナドはモナドだ。コンテナだとかプログラマブルセミコロンだという説明では、モナドのすべてを正確に表せるとは言い難い。では、モナドを過不足なく説明できる、モナド以外の言葉はあるのか? 実は、モナドを表現し、かつモナドで表現される言葉は存在する。その一つは手続きである。手続き型言語の「手続き」だ。 手続きとは何か 手続きは結果を持つ おおよそすべての手続きは何らかの結果を持つ。Haskellの()、C言語のvoid、PythonのNone、Rubyのnilなども結果の一種だ。結果が出ないとしたら、そのプログラムは停止しないか、途中で異常終了するだろう。 手続きには最小単位が存在する 処理系が扱っている以上、手続きが際限なく分解できるとい

    モナドとはモナドである - モナドとわたしとコモナド
  • 関数プログラミングが教えてくれる規律

    IIJ技術者はセミナーや講演会等において、IIJの持つ技術力や独自研究開発、最新の技術動向について広く発信し、インターネットの発展に尽力しています。

    関数プログラミングが教えてくれる規律
  • YBlog - Learn Haskell Fast and Hard

  • http://www.girlloveshaskell.com/index.php

  • 手続き脳による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 で関数合成 (2)

    1 つの引数を取る関数を合成 一つの引数を取る関数を合成する場合、例えば、 *Main> (2*).(3+) $ 4 14 関数合成の定義 は、 (.) f g x = f (g x) よって、関数合成の部分を定義で置き換えると、 (2*).(3+) => \x -> 2 * (3 + x) これを 4 に適用すると、 (\x -> 2 * (3 + x)) 4 => 2 * (3 + 4) => 14 2 つの引数を取る関数と、1 つの引数を取る関数を合成 上記の関数合成 (.) の第 1 引数を、2 つの引数を取る関数 (*) に変更してみる。関数の型を調べると、 *Main> :t (*).(3+) (*).(3+) :: (Num a) => a -> a -> a 合成された関数が、2 つの引数を取る関数になったことがわかる。 この合成された関数を適当な値に適用してみる。 *Ma

    Haskell で関数合成 (2)
  • Factorization diagrams

    In an idle moment a while ago I wrote a program to generate "factorization diagrams". Here’s 700: It’s easy to see (I hope), just by looking at the arrangement of dots, that there are in total. Here’s how I did it. First, a few imports: a function to do factorization of integers, and a library to draw pictures (yes, this is the library I wrote myself; I promise to write more about it soon!). > mod

    Factorization diagrams
  • YBlog - Learn Haskell Fast and Hard

    tl;dr: A very short and dense tutorial for learning Haskell. Thanks to: Oleg Taykalo you can find a Russian translation here: Part 1 & Part 2, Daniel Campoverde for the Spanish translation here: Aprende Haskell rápido y difícil, Joomy Korkut for the Turkish translation here: Zor Yoldan Haskell. I really believe all developers should learn Haskell. I don’t think everyone needs to be super Haskell n

  • PragPub Archives

    From the PragPub Archives The article, “Thinking Functionally with Haskell: Types? Tests? We Need a New Word,” by Paul Callaghan appeared in the September 2012 issue of PragPub magazine. PragPub was a monthly magazine by and for software developers that began in 2009 and ended its run in 2020. For a deep dive into Haskell, be sure to check out Effective Haskell . Please visit our Medium.com public

  • ゆるふわHaskell (Light & Airy Haskell) — laskell 0.0.1 documentation

    はじめに¶ 巷に溢れているHaskellはいきなりのIOを避けているものが多いですよね。こ れらのを読んでわかった気になっても、実際に日々のタスクに使おうとした 場合に結構ハマることが多いんですよね。 「習うより慣れろ」みたいなスタイルでHaskellの学習をするとどういう学習曲 線をたどることになるんだろうか? phpのように動けばいいや(偏見?)というス タンスでHaskellのコードを書くことは可能なんだろうか? と疑問に思ったので、よくあるスクリプト言語の入門書(IOから入る系)のよう な話題を取り扱ってみようかなと。 Sphinxという良い感じに文章をかけるツー ルと、書いた文章をGitHub Pagesで手軽に公開できるような環境の存在も、こ の試みを後押ししました。というか書いていて楽しいので、みなさんもSphinx つかうとハッピーになれると思います。 フィードバックな

  • Haskellでの多態 (多相) | Netsphere Laboratories

    (2009.1.3) Haskell での polymorphism について。 オブジェクト指向だと polymorphism (ポリモーフィズム) は「多態」と訳しますが、Haskell 界 (?) では「多相」というみたいです。 オブジェクト指向言語では、あるオブジェクトに対するメソッド呼び出しが、そのオブジェクト(の種類、クラス)によって異なる振る舞いをする、という意味で使われます。 Haskellにはパラメータ多相とアドホック多相があります。 パラメータ多相 Haskell は、静的に (=コンパイル時に) 型チェックしますが、型が違うだけで実装が共通化できることがよくあります。こういうとき、型をパラメータとします。このような多態をパラメータ多相 (parametric polymorphism) といいます。 次の例は、何かのリストの長さ(要素の数)を数えます。a は型変数で、

  • 山本和彦の発表資料

    2019/11 GHC の GC 2019/09 HTTP/2時代のコネクションの切り方 2019/06 関数プログラミングことはじめ 2019年度版 2018/03 ユニットテストあれこれ 〜 Haskellerの視点から 〜 2018/02 TLS 1.3 draft 23 ハンズオン 2018/02 TLS 1.3 の標準化動向 2017/01 TLS 1.3 2016/09 HTTP/2 and TLS in Warp 2015/11 関数プログラミングことはじめ 2015/11 HTTP/2 in Warp with Haskell lightweight threads 2015/11 Server Implementations of HTTP/2 Priority (revised) 2015/10 Server Implementations of HTTP/2 Prio

  • Haskellの楽しみ:<br>手続き操作型というパラダイム

    Haskellの楽しみ: 手続き操作型というパラダイム田中英行 tanakh@preferred.jp 2011/11/09 技術交流会 @日ユニシス 自己紹介 田中英行 (@tanakh)(株)Preferred Infrastracture 研究開発部門社内ライブラリ pficommon https://github.com/pfi/pficommon分散機械学習フレームワーク jubatus http://jubat.us/Haskell愛好家2003~Learn You a Haskell for Great Good!訳してます日の概要 ・ Haskellは 簡単 ・ Haskellは すごい ・ Haskellは 面白い ・ Haskell は簡単ですごく面白い ・ Haskell は面白くてすごいものが簡単に作れる (あとモナドの話少し) 最近のHaskellの話題Yes

  • YBlog - Haskell Progressive Example

    tl;dr: A progressive Haskell example. A Mandelbrot set extended in 3D, rendered using OpenGL and coded with Haskell. In the end the code will be very clean. The significant stuff will be in a pure functional bubble. The display details will be put in an external module playing the role of a wrapper. Imperative language could also benefit from this functional organization. Introduction In my preced

  • はてなブログ | 無料ブログを作成しよう

    ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く欲そそられますね 下足はミンチにし…

    はてなブログ | 無料ブログを作成しよう
  • YBlog - Haskell web programming

    update: updated for Yesod 1.2 tl;dr: A simple Yesod tutorial. Yesod is a Haskell web framework. You shouldn’t need to know Haskell. Its efficiency (see Snap Benchmark & Warp Benchmark1). Haskell is an order of magnitude faster than interpreted languages like Ruby and Python2. Haskell is a high level language that makes it harder to shoot yourself in the foot than C, C++ or Java, for example. One o

  • Ruby の聖地で Haskell を語る