Alfredo Di Napoli - Haskell programmer
Alfredo Di Napoli - Haskell programmer
All about monads の解読が Continuation Monad になってストップしてしまった。そもそも、継続渡しスタイル CPS や継続 contiuation の意味がよくわかっていなのだから無理もない。お茶を濁してそれらしい記事にしてもいいのだが、自分もわかっていないし、意味の分からない文章を読まされる人も迷惑だろう。 そこで、いつもの様に Google 先生に継続について聞いてみた。できれば日本語の文書が欲しかったのだが、納得できるものが見つからなかった。そこで "continuation monad" で検索して WikiBooks の "Haskell/Continuation passing style" という記事を見つけた。continuation monad だけでなく、継続の初歩から分かるような例がついているようなので挑戦してみる。 しかし、冒頭の C
endomap endomap は domain と codomain が同じ射だ。そう珍しいものではなく、整数の集合を domain とし、整数の2倍の値を返す関数(射)は、codomain が整数になる。 Prelude> :set +m Prelude> let Prelude| double :: Int -> Int Prelude| double x = 2 * x Prelude| Prelude> double 3 6 有限個の数値の集合の endomap のうち、全単射になるものは、順列だ。 Prelude> let Prelude| f 1 = 4 Prelude| f 2 = 3 Prelude| f 3 = 2 Prelude| f 4 = 1 Prelude| Prelude> map f [1,2,3,4] [4,3,2,1] identity map endo
Haskell を勉強し始めて IO モナドなんかに出くわさなければ圏論など近づこうともしなかっただろうが、モナドを正確に理解したくなって、圏論の入門書 Conceptual Mathematics: A First Introduction to Categories F. William Lawvere、 Stephen H. Schanuel を読み始めた。高校卒業程度の予備知識でも読めるように懇切丁寧に書かれているのがうれしい。 しかし、圏論は圏論なので、そう簡単に理解できるようには思えない。そこで、分かったと思えたところをまとめてみる事にした。 圏論は適用範囲が広い抽象的な考え方なので、具体的なイメージが作りにくい。やはり、慣れ親しんだ集合と写像を使える「集合の圏」から始めた方が良いようだ。集合と写像を、対象と射として取り扱う事によって、他の圏に対してもイメージを広げていく事がで
支援技術をもっと身近に,グローバルに 巖淵研究室では,障害のある人や高齢の人など,様々な困難を抱える人々に役立つテクノロジーの利用推進,ならびにそれを通じた多様性を受け入れる社会の実現を目指し,人と人,人とモノをつなぐ情報ネットワーク技術の高度化やコミュニケーション支援に関する研究を行っています。技術開発については,スマートフォンやタブレット,クラウドなどをはじめとする主流技術をベースとすることで,開発に必要な経済的・時間的コストを抑え,支援技術の普及促進をはかる国際的スキームの提案を目指します。 研究 (Research) タブレットPCを利用した読み書きに障害のある児童・生徒向けの支援技術,携帯電話を利用した介護向けコミュニケーション支援システム,画像解析技術を応用した 認知支援技術,開発途上国向けの支援技術に関する研究など,様々なテーマの研究を行なっています。 開発 (Develop
Markdownって何ですか? Markdownとは、John Gruberさんによって作られたマークアップ言語で、記述したテキストファイルをスクリプトで処理して二次生成物としてHTML出力する事ができます。 最近ではリポジトリに設置する文書にMarkdown記法を用いるケースを多く見るようになりました。 「README.mdって何だ?」っていうアレです。 今回はUOS-LPC800プロジェクトにおけるMarkdownの活用をご紹介します。 UOS-LPC800におけるMarkdownの活用 UOS-LPC800では、プロジェクト開始当初からMarkdownで一次文書を構成し、二次生成物としてウェブ用ファイルを作ることを考えていました。 Markdownのファイルをダウンロードすると変換用のPerlスクリプトが同梱されています。 Markdown.plを使用した事のある人にはわかるかもしれ
2.4GHzと5GHzのデュアル周波数をサポートし、2.4G周波数はより強力な侵入能力を持ち、さらなる伝送に適しています。 5Gの周波数は、干渉が少なく高速な伝送を提供し ...
2.4GHzと5GHzのデュアル周波数をサポートし、2.4G周波数はより強力な侵入能力を持ち、さらなる伝送に適しています。 5Gの周波数は、干渉が少なく高速な伝送を提供し ...
HaskellただいまRealクラスを探検ですが、そのソースの中に一つおもしろいものがあったので独立したエントリとして書いておきます。 Haskellで型を作るにはdataキーワードを使って以下のように書きますね。 data Ratio a = Construct a a -- 有理数を表す型 deriving (Eq) ここで、Ratioは型コンストラクタ(type constructor)、Constructは値コンストラクタ(value constructor)です。 私たちは、 Ratio a でもって始めてRatio a型とすることができるわけです。 Ratio Int型を次のように作るとします。 Construct 1 3 -- means 1/3 Construct 11 13 -- means 11/13 Construct 1 3 == Construct 1 3 --
著書『採用基準』が10万部を超え、ジレンマ世代を中心に注目を集めている、キャリア形成コンサルタントの伊賀泰代さん。「就職活動の厳しさなどをことさらに取り上げ、“今の若い人は大変”と、時代にネガティブなレッテル貼りをすることに違和感があるんです」という伊賀さんと対談するのは、高校卒業後にフリーターを経て、現在はベンチャー企業の代表を務める大竹智也さんです。 「元気ー?」「まさか、こういう場でお会いすることになるなんて(笑)」と、にぎやかに始まった2人のお話は、既存のしくみや価値観がジレンマ世代に与える影響から、未来の働き方のヒントまで、痛快きわまりなく展開していきます。 伊賀 泰代 (イガ・ヤスヨ) 1963年、兵庫県生まれ。キャリア形成コンサルタント。日興證券引受本部(当時)での勤務、米国へのMBA留学を経て、McKinsey and Company, Japanに入社。コンサルタント、採
ちきりんさんの「考えよう」シリーズ最新刊は、『未来の働き方を考えよう』。昨年発売された『ワーク・シフト』(リンダ・グラットン著)を読んで「未来の働き方についてじっくり考えてみたい」と思ったことが本書を書いたきっかけだったといいます。 『ワーク・シフト』は、グローバルな文脈で、2025年、働き方はどうなっているのかを予測した本ですが、ちきりんさんの『未来の働き方を考えよう』では、より日本の現状に引き寄せた議論をベースに、「40代で働き方を選びなおし、ふたつの人生を生きる」という具体的で大胆な提案がなされています。 40代で新たに職業を選び直すなんて「ごく限られた人の話」と思っているのでしょうか? 想像力を働かせたらそういう結論にはならないはず、とちきりんさんは言います。彼女がこの本で伝えたかった「いちばん大切なこと」とは? (>>第1回はこちら http://president.jp/art
Electronic hobby and a lot of rude programs! とはいえ。。。もぉちょっと なんとかならんか? Bluetooth の実験をするために、相互接続が可能なハードウェアと確認用のアプリケーションソフトを準備します。 Windows PC、Android 携帯、Bluetooth-TTLシリアル通信モジュールを SPP モードで相互通信できる環境を用意します。 自分でアプリケーションを作る前に、まずは用意したハード同士の互換性があることを既存のアプリで確認します。 Bluetooth ペアリングメモ 先に起動したほうをサーチ可能と設定し、後に起動したほうがサーチを実行する。互いのリストに出現したあとにペアリングをリクエストする、リクエストした側から暗証番号を設定、リクエストされた側が暗証番号を回答。 BT module 等キーボードを持たない機器は、あら
sqlite3 の操作の学習用になにか手軽なデータベースはないかと考えていたら、自分の過去記事の「sqlite3 の使い方」にアミノ酸のデータベースを作る記事があった。その記事の CSV のデータをコピーして vi に張りつけ、aminoacid.csv というファイルを作った。 次に、sqlite3 で次のようにして anminoacid.db を作りテーブル aa を作成した。 $ sqlite3 aminoacid.db "create table aa (name text,let3 text,let1 text,polarity text,acidity text,hydropathy real);" 最後に、aminoacid.csv を aminoacid.db の aa テーブルにインポートした。 $ sqlite3 -separator , aminoacid.db ".
Free モナドは有効?ここ数日 Free モナドについて調べていて気になったことがあるので書く。Free モナド。興味深い名前のこのモナドはいくつかの興味深い特徴を持つ。現時点で自分が知っているのは次の3点。データ型 f を Functor のインスタンスにすると Free f が Monad のインスタンスになるFree f は mtl の型クラスをはじめとする多数の型クラスのインスタンスになる (地道にインスタンスを定義するのはめんどい)Free モナドのアクション Free f a は任意のモナド m のアクション m a に変換できるFree モナドを実用する観点でこれらの特徴を見ると、3点目の Free モナドを任意のモナドに変換できる特徴に注目したい。これは、Free モナドの各アクションをインターフェースと見立ててプログラミングをすると、インターフェースの実装コードをそのプ
If you’re reading this, you’re probably a red-blooded American programmer with a simmering interest in cryptography. And my guess is your interest came from Bruce Schneier’s Applied Cryptography. Applied Cryptography is a deservedly famous book that lies somewhere between survey, pop-sci advocacy, and almanac. It taught two generations of software developers everything they know about crypto. It’s
サーバーアプリ開発は何処でも出来る。Linux(Ubuntu)、Mac、Windowsどれも使ってるんでクラウドで環境を共有化したくなるのが自然かなと。ということで実際やってみたものの・・・というお話。 Google Drive DropBoxでも良かったんですが、こちらは妻と別用途で利用中なので怪しいものは入れられないのです。それで、このためにGoogleDriveを利用することにしたわけです。 (GoogleDriveについては、色々親切ページがあるので、そちらを参照してくださいな) grive MacとWindowsのクライアントソフトは本家からダウンロードすれば済みましたが、Linux環境がね・・・ で見つけたのが、「grive」です。griveについては、google-drive CLI 'grive'を参考にされるとよいでしょう。自分と同じUbuntu12.04LTSへインスト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く