IIJの技術者はセミナーや講演会等において、IIJの持つ技術力や独自研究開発、最新の技術動向について広く発信し、インターネットの発展に尽力しています。
Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch
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
はじめに io-streams パッケージがリリースされた折にふと「conduit,pipes,io-streams 以外の streaming data を扱うライブラリには何があるんだろうか?」と疑問に思いつぶやいてみたところ, machines がある ということを教えていただきました. 気になったので調べてみた,というのが今回の内容です. 基本的な使い方に始まり,何とか attoparsec を組み込むあたりまでは辿り着きました.なお,GHC 7.4.1 を使用しています. 見出し これは何? 雰囲気 どう使うの? 基本形 Source の作成 Process の作成 Transducer を組み込む 複数入力の取り扱い Parser を組み込む おわりに これは何? 今回の対象は↓これ. machines-0.2.3.1 http://hackage.haskell.org/pa
見ていただけるのは嬉しいですがこのエントリは十分古いため、新しい情報へアクセスをしてください。以下の本をお勧めします。 すごいHaskellたのしく学ぼう! 作者: MiranLipovaca出版社/メーカー: オーム社発売日: 2017/07/14メディア: Kindle版購入: 4人 クリック: 9回この商品を含むブログを見る 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus) 作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行本(ソフトカバー)この商品を含むブログ (8件) を見る みんなHaskellやろうぜ!! ということで書きました。 CやJava、Rubyなど他言語を知っている人は、これを読むことでHaskellの大抵のことはマスターでき…ません。 特殊な構文が多すぎて他言語との類
Haskell の処理系、GHC でのごみ集め Haskell処理系のひとつ、GHCの実行時オプションを勉強していたところ、 一つドキュメント化されていないオプションを発見しました。 以下のオプションです: -w Use mark-region for the oldest generation (experimental) 調べた結果、GCのアルゴリズムを変更するオプションと分かりました。 GHCのランタイムは、メモリ上のごみ集め (garbage collection, 以下GC)に、 世代別 GC を採用しています。世代別 GC とは、 「一時オブジェクトは、すぐに破棄されることが多く、 ある程度長く生存したオブジェクトは、以降も長く生存することが多い」 という経験則に基づいた GC 手法です。 新たに割り当てられたオブジェクトは、若い世代と見なし、頻繁に回収の対象とする。 若い世代
このページは手続き脳から脱却でいない筆者が、Haskell による各種 ソートティングアルゴリズムを実装してみた結果を紹介するページです。ソート はアルゴリズムの基本ですから、これで Haskell を攻略しようというわけ です。 ところで、Haskell に関するWebページを巡回していると、高階関数やモナド などを複雑に使ったアクロバチックでアブノーマルなコードに出会うことが しばしばあります。書いている超頭の良い人達は自らの変態さ加減が披露出来て 快感なのかもしれませんが、頭の悪い私にはそんなコードは理解できません... orz。 そこで私のページでは次のスローガンでプログラミングを行います 普通にやれ、普通に! そんなわけで「モナドを理解したい」とか常人には不可能な無理難題を期待 している人は他のページを当たってください。筆者自身が分かってないので解説 できません。ごめんなさい。
I gave a talk on this subject at London Haskell in November 2012. A video of the talk is on YouTube and slides are on GitHub. In this series of posts I’ll explain why Haskell’s data types are called algebraic - without mentioning category theory or advanced math. The algebra you learned in high school starts with numbers (e.g. 1, 2, 3 …) and operators (e.g. addition and multiplication). The operat
この記事では, 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
これまで 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
Hayoo! - Haskell API Search Search Hackage by function, signature or package. How to use Hayoo! by Example About Hayoo!
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
この項目では Haskell に関連する内容に限って圏論の概観を与えることを試みる。そのために、数学的な定義に併せて Haskell コードも示す。絶対的な厳密さは求めない。そのかわり、圏論の概念とはどんなものか、どのように Haskell に関連するかの直感的な理解を読者に与えることを追求する。 3つの対象A, B, C、3つの恒等射, , と、さらに別の射, からなる単純な圏。3つめの要素(どのように射を合成するかの定義)は示していない。 本質的に、圏とは単純な集まりである。これは次の3つの要素からなる。 対象(Object)の集まり。 ふたつの対象(source objectとtarget object)をひとつに結びつける射の集まり。(これらはarrowと呼ばれることもあるが、Haskellではこれは別の意味を持つ用語なので、ここではこの用語を避けることにする。) f がソースオブ
Haskell is an advanced purely-functional programming language. An open-source product of more than twenty years of cutting-edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages, built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce fle
会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月~2005年3月掲載)と「Haskellプログラミング」(2005年4月~2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/から取ることができます.
Hey yo! This is Learn You a Haskell, the funkiest way to learn Haskell, which is the best functional programming language around. You may have heard of it. This guide is meant for people who have programmed already, but have yet to try functional programming. The whole thing is completely free to read online, but it's also available in print and I encourage you to buy as many copies as you can aff
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く