盛岡旅行記 なぜ盛岡か。 白龍 本店のじゃじゃ麺 岩手銀行赤レンガ館 白沢せんべい店の南部せんべい 盛岡天満宮と盛岡八幡宮 チーズケーキのチロル 大通店のクリームチーズケーキ フェザン/イオンタウン 盛岡駅前 盛楼閣の盛岡冷麺 福田パン 長田町本店のパン マルイチ 材木町店 …
Conduit is a framework for dealing with streaming data, such as reading raw bytes from a file, parsing a CSV response body from an HTTP request, or performing an action on all files in a directory tree. It standardizes various interfaces for streams of data, and allows a consistent interface for transforming, manipulating, and consuming that data. Some of the reasons you'd like to use conduit are:
Haskellのプログラムの実行がGlasgow Haskell Compilerによるコンパイル後にどういう命令によって表現されているかに興味があったので調べてみました. 例えば関数がどのようにメモリ上に存在するかといった実装や, 数字がどうやって表現されているかをgdbを用いて調べてみます. この記事はpartake.inの12月24日分のものです。 Haskellのコンパイル順序 I know kung fu: learning STG by exampleによるとHaskellはGHCの中で次のような流れでコンパイルを進めます. Parse tree Core (Syntax sugarがなくなります) STG (Spineless Tagless G-machine language) C-- backend 下の中から一つ選ばれます LLVM IR (LLVM) Native
GPGPU Advent Calender@21日目ですが、完全にネタ切れのため前回書き忘れていた部分を補足してお茶を濁します! by jirohcl まず、前回説明し忘れた重要なnoise関数。 float noise(float2 p,__global float2* rt,__global unsigned char* rti) { float2 floor_p = floor(p);//float2(floor(p.x),floor(p.y)) int i=(int)floor_p.x, j=(int)floor_p.y; float2 n00=rt[hash_idx(i,j,rti)]; float2 n10=rt[hash_idx(i+1,j,rti)]; float2 n01=rt[hash_idx(i,j+1,rti)]; float2 n11=rt[hash_idx(i+
This document discusses Haskell concepts and how they compare to object-oriented programming concepts in languages like C++ and Python. It covers topics like algebraic data types, classes and instances in Haskell, and how concepts like private fields differ between Haskell and other languages. It also includes examples of data types, functions, and classes in Haskell as well as frequently asked qu
このエントリは、Haskell Advent Calendar 2011の参加記事です。 今回は、HaskellのGHC拡張であるGADTs(Generalized Algebraic Data Types : 一般化代数データ型)を調べて使ってみたという内容を書いてみました。 最初に、GADTsはGHC拡張なので、使用するには以下のようにして拡張を有効にする必要があります: {-#LANGUAGE GADTs #-} まずは構文的な違いを、Maybeを例にして見てみましょう。 通常の代数データ型では、Maybeは以下のように書きます: data Maybe a = Nothing | Just a GADTsでは以下のように書きます: data Maybe a where Nothing :: Maybe a Just :: a -> Maybe a 通常の代数データ型では、データコンス
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Peggy: 新しい時代のパーザジェネレータ田中英行 tanaka.hideyuki@gmail.com 2011-12-16 @ Haskell忘年会 自己紹介田中英行 (@tanakh, http://tanakh.jp)(株)Preferred Infrastructure 勤務C++ 書いてますHaskell愛好家 (2004~)Learn You a Haskell for Great Good! 翻訳中来春予定C81関数型イカ娘本寄稿予定SS2篇 Peggy: 全く新しいパーザジェネレータPeggyとは?パーザジェネレータのモダンな実装新しい構文解析アルゴリズムシンプル・簡単・強力な記法Quasi-QuoterであるHaskellコードへのシームレスな組み込みStandalone なパーザとしても利用可能Quasi-Quoter生成機能Haskellコードのシームレスな生成Un
エラー処理を書いてはいけない田中英行 tanaka.hideyuki@gmail.com 2011/12/08 @PFIセミナー 自己紹介田中英行 (@tanakh, http://tanakh.jp) PFI社でプログラマやってますJubatuspficommon検索エンジンのコアエンジンHaskell愛好家msgpack / rpc / idlpeggy (パーザジェネレータ & QQ w/ AQ)Shu-thing (シューティングゲーム) / (Monadius メンテナ)今気になるパッケージは monad-controlLearn you a Haskell 鋭意翻訳中 (春頃発売予定) エラー処理を書いてはいけない本日の概要エラー処理を抽象化しようというお話です 現在のエラー処理の抱える問題どのように解決するのか実際の例エラーは処理しなければならない エラー処理を書いてはいけな
村主です。 2011年9月21日に、ICFP2011で来日していたSimon Peyton-Jones先生を弊社にお招きして、Glasgow Haskell Compilerの最新事情について講演をしていただきました。当日は体が浮きそうなほどの風が吹く大嵐でしたが、多くの人の協力のおかげで無事に終えることができ、感謝しています。 サイモン先生からスライドを分けてもらったので、講演会の動画とあわせて読む形で、記事にまとめてみました。Haskell/GHCのさまざまなトピックをカバーするこの講演、みなさんのHaskell勉強の一助となれば幸いです。 サイモン先生に「君たちも何か話してよ」と頼まれたので、僕が流体計算言語Paraiso(リンク先にスライドあり)の話をまずしています。 31:46 頃からサイモン先生のトークが始まります。まずはHaskell Communities and Acti
hello mum");doc.close()}function findSlideNumber(uri){var i=uri.indexOf("#");if(i<0){return 0}var anchor=unescape(uri.substr(i+1));var target=document.getElementById(anchor);if(!target){var re=/\((\d)+\)/;if(anchor.match(re)){var num=parseInt(anchor.substring(1,anchor.length-1));if(num>slides.length){num=1}if(--num<0){num=0}return num}re=/\[(\d)+\]/;if(anchor.match(re)){var num=parseInt(anchor.sub
存在型+型クラスでduck typing. 参照:http://www.haskell.org/haskellwiki/Existential_type 既に言及されてますが、このやり方だとHaskellはnonintrusive-explicit-dynamic に該当しますね。 テーブル修正しました。 class Duck a where quack :: a -> IO () data Dog = Dog data Cat = Cat -- non-instrusive -- -- 犬はアヒルだ instance Duck Dog where quack _ = putStrLn "wuff!" -- 猫もアヒルだ instance Duck Cat where quack _ = putStrLn "meow." data DuckObj = forall a. Duck a =>
Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く