『プログラマのための圏論』はこれまでの分をまとめてPDFファイルにしました。参考にしてください。
『プログラマのための圏論』はこれまでの分をまとめてPDFファイルにしました。参考にしてください。
ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで
オブジェクト指向プログラミングを神格化するような記事が流れてきたので,僕が知っている問題点について書いてみたいと思います.僕がまだ学生だったころは,オブジェクト指向の評価もまだそれほど定まっていなくて,オブジェクト指向の次はどんなパラダイムが出てくるかとか普通に学生レベルで議論していたものですが,ここまで強大になってしまうとそれを打ち負かそうなんて気にはならないのでしょうか.僕にはオブジェクト指向が普遍的な真理という感じは全然しなくて,ここまで使われてる理由は,現実的なテクノロジーで大きなシステムを作らなければならない必要性のほうを優先した結果であると認識しています.オブジェクト指向がその後の25年ほどもずっと安定してその地位を保てるほど素晴らしいものとは思えないのです. 以下で上げる問題点は,個別に解決している研究はあったりしますし,僕も論文を書いたりしましたけど,実際の言語に導入されて
関数型プログラミングが流行していることもあって、頻繁に耳にする「参照透過性」という用語について考えます。 ∥ 参照透過性 - Wikipedia その過程で目にした、Stack Overflow 上の Reddy 氏の発言が面白かったので、ザックリと訳します。 用語の起源と、それがプログラミング言語に導入された経緯 一応意味は分かってはいるんですが、なぜ「副作用のない関数呼び出し」やら「変数への再代入の禁止」といった特性を「参照透過性」と呼称するのかが分かりませんでした。この場合の「参照」は、何が何を参照することであり、また、それがどういう状態にあることを「透過である」としているのかが、通り一遍調べてみても分かりませんでしたので、掘りに行ってきます。 英語版 Wikipedia の方には、この考え方がプログラミングの概念として導入された経緯についての論文が参考文献として挙げられています。
近況 ふとした瞬間に虚しくなることがある いきさつ 今年、秀和システムから関数型プログラミングに関する本が出て、良くも悪くも、その本が注目を集めることになってしまいました。そんな中で色々な人が反応していましたし、自分もこのようなかたちで感想を書きました。 一方で、このような本を書かれるくらいであるならば、自分で真っ当な本を書けばいいわけだし、技術書を書くことなんて、そんな敷居の高いことではないというカウンターもあり、個人的にはそれも最もだなあ、という印象がありました。その中で自分なりに関数型プログラミングについて理解したことを元にQiitaに駄文をアップしたりしていました。間違ってたら、誰かが訂正してくれるだろうし、そのほうが自分にとって勉強になるだろう、と思うので。 ですが、「関数型プログラミング」というのは「なんだか難しい」という印象を覚えるのも事実のようです。実際に、最新の『Soft
はじめに これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください。 【ゴール】 「なぜ関数プログラミングは重要か」という文章で重要とされている「高階関数」と「遅延評価」について理解してもらうこと (遅延評価の説明は次回) 【執筆動機】 関数型な人による関数型の説明がつらいため (関数型の利点を関数型言語で説明されても、関数型言語を知らん人には伝わらんわな) 関数型界隈の騒動を利用して漁夫の利を狙うため (関数型で騒動が起きる → 関数型に注目が集まる → 関数型を勉強するニワカが増える → SICP や OCaml や Haskell に挑む → みんな挫折する → もっとわかりやすく説明してくれ → さっそうと Python が登
(追記)2015/4 関数型プログラミングに目覚めた! IQ145の女子高生の先輩から受けた特訓5日間 を無事出版しました。 (関連記事) 関数型プログラミングとオブジェクト指向のパラダイムとしての対立 国内の【自称】関数型コミュニティと海外の論調の違い 自分の考えを公表するときには、それなりの責任が伴います。 ときには、考えが違う相手との摩擦を産み、論争に発展することもあるでしょう。 私のQiitaのアカウント kenokabe は、1ヶ月ほど前にQiita運営よりサスペンドされました。 その事について当事者として論評したいと思います。 なぜ今書くのか? まず、 なぜ1ヶ月も本件について意見しなかったのか? なぜ今になって意見するのか?というと、 1.他にやるべき知的にも社会的にも経済的にも、あらゆる観点で生産的な作業が、それ以前より山積みとなっており、このような文章を書くことに意識を向
なぜこれを書いているか 『関数型プログラミングに目覚めた!』のレビュー(Day-1) という記事がMay 09, 2015、QiitaにUpされました。 この本については、邪な連中が多く、私もずいぶん不愉快かつ理不尽な思いをしてきましたので、この文責を伴わない「捨てアカウント」のレビュアが表明する前提の真実性を性善説をもってナイーブに信用することも当然難しいです。Qiitaにおいて、こういうことはこれまで何度も繰り返されてきました。特にこの記事に引用されている @camloeba というこの辺の輩のTweetをわざわざひっぱってきているあたり、ああまたやっているのか、と思わないこともありません。 実際、このレビューが着目する論旨は、私が、直近の記事、 『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間 』の著者として、『数学ガール』の著者である結城 浩氏に
var plus = function(a, b) { return a + b; }; var s = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] .reduce(plus); console.log(s); が対比されています。 [0,1,2,...,9]はダサいか? 本書に対する感想として幾つか見かけたものに、「関数型コードの[0,1,2,...,9]という配列リテラルベタ書きの方が命令型コードよりダサいではないか!」というものがありました(0〜999まで足せと言われたらどうするつもりなのか!)。しかし、まさに0〜999まで足すにはどうしたらいいのだろう、という問いを本書の登場人物自身が問い(p. 45)、配列リテラルではなくrange関数を使って配列[0..999]を生成するコード例が示されます(p. 109)3。ですので、何度も繰り返されるコード例[0,1,2,
Lau Taarnskovさんの2015年4月19日付のブログ記事、Elixir - The next big language for the webの翻訳です。 ElixirはErlangのVM上で走る、Rubyにちょっと似た(というのも作者(José Valim)がRuby on Railsのcoreチームメンバーなので)関数型言語です。 2012年に登場していてQiitaでもAdvent Calendarなどが既にあるようですがまだあまり知られていないですね。ElixirとPhoenix Frameworkを組み合わせたものがマイクロ秒のオーダーで反応が帰る爆速だそう(ホントかな~)で興味を持ちました。 しかしほんの10年前ぐらいの話がもう遥かな昔話に聞こえますね…。 (追記:実際にプログラムを書いてみました → Elixirで試しに何か書いてみる(その1) Elixirで試しに何
つい最近になって、「関数型言語を教える」という名目のような本が販売されて、プログラマ界隈で話題となりました。この本は、一見プログラム入門書のように見えますが、著者の哲学的な思惟が含まれており、それらを知らない人間にとっては、判断が付きようがない品物であることは確かで、その中身の是非を知りたいという人々がそれなりにいることに気がつきました。 自分の場合、元々バックグラウンドが哲学や現代思想をかじって遊んでいた人間というのもあり、それらの議論について、ある程度理解しているつもりですので、その辺で気になった部分に関して、メモ書きをしておこう、と思ったのがこの記事の背景です。 ちなみに、如何なる仮説であれ、それらは平等に扱われるべきです。この著書が問題となるのは、それが如何なる文献を参照し、その判断が正しいのかどうなのか、ということが余りにも不明瞭であり、また議論としても、言い切りが多く、果たして
レビューポエム “関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間” を読んで 大阪天満橋のジュンク堂書店で購入しました。本当は立ち読みですませる気だったんですが、買わないでレビューはフェアではないかなと思い……今は後悔しています。 僕はプログラミングをしてご飯を食べていますが、関数型プログラミングの領分はまったく未経験です。 関数型の説明が適切かどうかの判断についてはできません。その上で、なぜ評価を低くしたのか、技術書的な側面とラノベ的な側面について分けて記述していきます。 技術書として まず、最初の「人物紹介」に記載されている、本書を通じての指南役である「サクラ」の説明に”プログラミング・スキルは、『神の目』と呼ばれる全能レベルにまで到達していると噂されるが、サクラのコードを読み解ける部員がいないため、真相は不明である”と記載があります。 他の人が読み
これは、関数型プログラミングの特徴を Python で説明した長編ポエムです。 IQ145 の美少女は出てきませんので、過度な期待はしないでください。 【対象読者】 関数型言語は知らないけど関数型プログラミングの初歩を勉強したい人 (Python を知らなくてもなんとなく分かるように書いたので、PHP や Java や JavaScript の人も読んでみてください) 【連載記事】 第1回 関数を受け取る関数は便利だよ編 (←今ココ) 第2回 関数を生成する関数はすごいよ編 はじめに 「なぜ関数プログラミングは重要か」という文章があります。タイトルの通り、関数型言語がいかに役に立つかを紹介している文章です。長いですが、3 行でまとめるとこんな感じ: ソフトウェアがどんどん複雑になるので、モジュール化が重要 関数型言語は、強力なモジュール化機能を提供している 特に「高階関数」と「遅延評価」が
前置き: 特定の言語ではなく、関数型言語一般に関する説明です。 ここに書くのが良いのかわかりませんが、それを考える時間ももったいないのでとりあえず書きます。必要が生じたら移転します。 皆様のご要望や自分の気分(?)により随時加筆修正します。 「それは違うんじゃない?」というご指摘はもちろん、初心者の方の素朴な疑問・質問や、「ここがよくわからない」「こういうことも書いてほしい」みたいなコメントも歓迎します。すぐに対応できない場合もあると思いますがすみません。Twitterのesumii宛でも構いませんが、コメントのほうが他の方も見つけやすくて良いと思います。当然ながら(他者に対しても)誹謗中傷等はご遠慮ください。 いただいたコメントはほぼ本文に反映していますので、本文を読むために、必ずしもコメントを読む必要はありません。もちろん、興味と余裕(?)があればコメントも読んでいただければ非常に有用
ふえぇ、とうとう、毛の壁(kenokabe)こと岡部健氏が、QiitaからBANされましたねー。正直僕、思ったより迅速な対応だったなーと、そう思いますぅ。僕は関数型コミュニティの端っこで、ぼちぼちHaskellなんかを書いてます。圏論もちょっとやってます。ですから、今回の一連の流れは、あくまで関数型プログラマの一員として、毛の壁をウォチさせてもらいました。あのね、多分、今回、特に関数型界隈の外の人はね。「ちょっとくらい間違ってる事言ってるかもしれないけど、そこまで叩かなくて良いんじゃね?」とか「Qiitaの運営、別にBANする事も無かったんじゃね?」とか、思った人も多いと思うのです・・・。違うんです、僕らには、そしてQiitaの運営には非は無いのです。だからね、釈明させてちょうだい?ちょっとだけ、今回の騒動に遠すぎず近すぎない、僕の立ち位置から一連の流れを説明させてください。こまい事は省略
Qiitaで起きたちょっとした騒ぎについて、事情を知らない人たちが混乱しているみたい。 自分が知っている範囲で、何があったのかを書いておくことにする。� 登場人物については、具体名を出すと迷惑かと思うのですべて伏せる。 知りたければ調べれば分かると思う。 ちょっと前の話何ヶ月くらい前だったか、Qiitaでちょっと�話題になった投稿があった。 Swiftについての話だったからWWDC2014よりは後の話。 この投稿をしたのが今回の騒ぎの中心人物。名前を言ってはいけないあの人。以下Kとする。 で、何が話題だったかって、ものすごい分量のテキストでそれっぽく書いてあるんだけど�内容は�(というかタイトルからして)デタラメ。 でもものすごい分量でそれっぽく書かれていると信じてしまう人もいるようだった。 コメント欄には正しい指摘をする人もいたんだけど、Kは否定的な指摘(客観的に見て正しい指摘なのだが)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く