タグ

haskellに関するnitoyonのブックマーク (20)

  • シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ

    あらすじ Web技術が複雑になる中で、JavaScriptのプロファイリングをとる方法とは。 プロファイリングを取るためのコードを手で書いてみましょう。 とてもシンプルで、かつ最高のJavaScriptプロファイラ sjsp を作りました。 当にあった怖い話 上司 「とにかくJavaScriptのコードを速くしてくれ」 私 「分かりました、速くします」 (次の日) 私 「いいプロファイラがないなら作ればいいじゃない」 同じチームの人 「えっ?」 私 「最高のJavaScriptプロファイラ作ったよ」 同じチームの人 「「えっえっ???」」 私 「早速使ってみたらこことここが遅いって分かったよ」 同じチームの人 「「「この子は一体…」」」 JavaScriptのプロファイリングの難しさ 近年、Webブラウザーの処理速度は著しく向上し、その可用性の高さから、アプリケーションのプラットフォーム

    シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ
    nitoyon
    nitoyon 2015/07/02
    Haskell 製のプロファイル用コードを突っ込むツール。
  • 言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー

    Twitterのタイムラインが面白すぎて、ついうっかり言語を擬人化して脳内で言語女子会なるものを開いてしまいました。なお、登場人物と実在の人物は1対1に対応しません。 undefinedとnullの両方必要なの? とあるプログラミング言語が集う女子会にて: Perl: そういえばさ、なんでJavaScriptちゃんってundefinedとnullの両方もってるの? JavaScript: えっ、未定義の変数にアクセスした時undefined返したいじゃない? Python: 例外投げて死ねばいいじゃん Ruby: 例外投げて死ねばいいよね Python & Ruby: ねー♡ Java: いやそこは参照型ならnull、数値型なら0で初期化すべきでしょ C: これだから最近の若い子は…初期化にだってコストが掛かるんだからね!デフォルトで初期化するなんて無駄遣いよ!必要な人だけが責任をもって初

    言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー
    nitoyon
    nitoyon 2012/03/17
    おもろい。PHP ちゃんが参加したところを見てみたいが、集中砲火で話が進まないかもしれない。
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
    nitoyon
    nitoyon 2010/03/06
    モナドをjQueryと比較しながら説明。jQueryオブジェクトはモナド則を満たし、Maybeモナド・Stateモナド的な側面がある。激しく分かりよい。(原文) http://importantshock.wordpress.com/2009/01/18/jquery-is-a-monad/
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
    nitoyon
    nitoyon 2009/10/30
    モナドを理解する。Scala 用。
  • Personal Cloud Storage – Microsoft OneDrive

    All Microsoft Global Microsoft 365 Teams Copilot Windows Surface Xbox Deals Small Business Support Software Windows Apps AI Outlook OneDrive Microsoft Teams OneNote Microsoft Edge Skype PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Certified Refurbished Trade-in for cash Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC and Windows games Movies & TV Business Micro

    Personal Cloud Storage – Microsoft OneDrive
    nitoyon
    nitoyon 2009/07/04
    Programming in Haskell スライド(http://www.cs.nott.ac.uk/~gmh/book.html)の日本語訳。(関連)http://d.hatena.ne.jp/faith_and_brave/20090430/1241081426
  • さあ、Yコンビネータ(不動点演算子)を使おう! - よくわかりません

    前回、おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりませんというエントリで、Yコンビネータ(不動点演算子)と再帰の絵解き解説をしました。 Yコンビネータ自身は、結局のところ再帰を産み出してくれるだけです。関数(正確にはλという単純な文字列変換ルール)だけで出来て、プログラミングに関するいろんな原理の研究を可能にするのが凄い訳です。その辺のさわりを、きしださんが解説されています。しかし、単なる再帰なら、実際のプログラミングではYコンビネータなんて使わなくても出来ます。 じゃあ、Yコンビネータとか不動点とかは、偉い学者さんとかが研究に使えばいいもので、普通のプログラマには何の意味もないモノなのでしょうか? というわけで、今回はポジティブに、Yコンビネータや不動点で出てくる考え方を、理論だけじゃなく、実際のプログラミングに応用する例を見てみましょう。 今回、プログラムの例を

    nitoyon
    nitoyon 2009/04/23
    Yコンビネータでモロモロ。未読。
  • Arrowを勉強しよう - みずぴー日記

    30分プログラム、その520。HaskellのArrowを勉強しよう。 30分ほど、日語で解説してるブログを見てみた。 とりあえず、今のところ分ったのは、 Unixのパイプのように関数をつなげれる IO処理がポイントフリースタイルで書ける do記法でも書けるらしい といったところ。 また明日がんばろう。 参考サイト ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません [haskell] How To Arrow 基 - 言語ゲーム 参考になりそうなサイト まだ読んでない。 『Arrowのはなし』西川仁 - ニコニコ動画 Programming with Arrow(http://www.cs.chalmers.se/~rjmh/afp-arrows.pdf) とりあえずwcを書いた {-# OPTIONS -farrows #-}

    Arrowを勉強しよう - みずぴー日記
    nitoyon
    nitoyon 2009/02/04
    Arrow の情報。参考になりそうなサイト。
  • Haskell programming tips- 他人のHaskell日記 - haskell

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    Haskell programming tips- 他人のHaskell日記 - haskell
    nitoyon
    nitoyon 2008/12/25
    Hasckell programming tips の和訳。こうしましょう、というパターン集。
  • C++でMaybeモナド - Faith and Brave - C++で遊ぼう

    今日 id:uskz に会ったときに「C++でもMaybeモナドできますよ」って言われたので調べたらこんなのあった Maybe monad in C++ #include <boost/variant.hpp> class Nothing {}; template <class T> class Just { public: T val; Just(T x) : val(x) {} }; template<class T, class F> boost::variant<Nothing, Just<T> > operator>>=(boost::variant<Nothing, Just<T> > x, F f) { return (boost::get<Nothing>(&x)==NULL) ? f(boost::get<Just<T> >(x).val) : Nothing(); }

    C++でMaybeモナド - Faith and Brave - C++で遊ぼう
    nitoyon
    nitoyon 2008/12/05
    テンプレートでモナド。まだ理解してない。
  • Program | 速くないクイックソート

    Index of /diary/index.php/2004/07/19 NameLast modifiedSizeDescription Parent Directory  - 0/2016-01-06 09:45 - Apache/2.4.10 (Debian) Server at www.jmuk.org Port 80

    nitoyon
    nitoyon 2008/10/24
    Haskell とソートの話。マージソートHaskell版も。
  • 畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log

    つーか、fold の弱点として、言語によって引数の順番がまちまちで、 正直憶えきれないってのがあるんだよな。誰か対応表とか作ってくれんもんか。 jijixi's diary - fold, map, for-each この中から一つ選ぶとしたらどれ? 確かにいろいろとややこしいのでまとめてみました。 いくつかの言語について大雑把に表にすると次のような感じ。 言語 関数 Haskell, OCaml, Scheme, Erlang foldl* f init items C++ accumulate(begin, end, init, f) Ruby*, JavaScript items.inject(init, f) Python, Perl* reduce(f, items [, init]) 言語 畳み込む二項演算 Scheme(SRFI)*, Erlang f(item, acc)

    畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log
    nitoyon
    nitoyon 2008/10/17
    畳み込みを行う関数を言語ごとに比較。分かりよい。
  • 文法事項 -Haskell- - Enjoy Programming

    ソースファイルの拡張子 コメントなど コメント $ おまけ 関数合成 関数の定義 ガード case of ワイルドカード アズパターン タプル リストの基 無名関数の基 リストの内容表現と数列表記 局所定義 where let do Haskellのインデント(レイアウト) クラス readとshow show read データ型 data宣言 フィールドラベル 複数のデータ構築子とフィールドラベル type宣言 newtype宣言 ソースファイルの拡張子 Haskellのソースの拡張子には".hs"や".lhs"が用いられる。この2つには違いがある。".lhs"という拡張子を選択すると、明示的に指定しないと全ての行はコメントとみなされる。つまり、 this line is ignored. > plus x y = x+y 2行目のように、">"を行頭につけると、その行はプログラム

    nitoyon
    nitoyon 2008/10/16
    1ページで文法がまとまってるので思い出しやすい。
  • Haskellで敵を踏み潰したりするゲームを作ってみた - imHo

    中途半端だけど、現状の動画をupしますた。 http://www.nicovideo.jp/watch/sm4842293 ソースは http://svn.coderepos.org/share/lang/haskell/nario に置いてあります。 現状 22ソース、1605行 「関数型言語」って身構えることは全然なくて、Cとかで組むのとあまり変わらないよ、っていうかよっぽど楽だよ(パフォーマンスの細かな調整を考えなくてよければ) 存在型でオブジェクトごとにソースを分けたので、敵やエフェクトなどがかなり書きやすくなった Haskellでソースの循環 import ができない 2006-06-27 で回避、しかしメンドイ 結構作り散らせる、引数や型の内容を変更すると関連する部分のエラーを全てコンパイラが見つけてくれるので、かなり楽。修正すれば型に関する実行時エラーは起きないので気分的にも

    Haskellで敵を踏み潰したりするゲームを作ってみた - imHo
    nitoyon
    nitoyon 2008/10/08
    Haskell で nario というゲーム。ソースはcoderepos
  • [Think IT] 【新・言語進化論】次にくる!新登場言語

    プログラミングを嗜む普通の社会人。はじめてのプログラミングは「Hello World」ではなく、N88-BASICで画面上に円を描いたこと。「外国語のよいところはそれをいくつ学ぼうと構わないことだ」という或る言語学者の言葉はプログラミング言語にも当てはまると最近感じ始めている。 http://blog.so-net.ne.jp/rainyday/ 技術部 教育ビジネス担当部長 CやFORTRANコンパイラなどの言語処理系の設計・開発に約10年間従事。その後ユーザ系企業でUNIXによるクラサバの設計・開発を主導。同時に企業の内外で人材育成に注力する。現在はオープンソースソフトウェアの普及と教育のため OSS に関する教育事業を企画する傍ら、神戸情報大学院大学で講師として教鞭をとる。「ソフトウェア工学の基礎を勉強してオールラウンド・プレーヤーを目指せ」が技術者育成についての口癖。

    nitoyon
    nitoyon 2008/03/22
    最近話題の言語をざっと解説。
  • Euler problems - HaskellWiki

    These are solutions to the problems listed on Project Euler. WARNING - Do not peek at any of these pages if you want to enjoy the benefits of Project Euler, unless you have already solved the problems. The existence of these pages is very controversial; see the talk page for discussion. Many P.E. participants regard it as a global Internet competition which is being compromised by these readily av

    nitoyon
    nitoyon 2008/02/23
    Euler problems の問題回答。Haskell版。
  • λ Calculus - まずは遅延評価から : 404 Blog Not Found

    2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =

    λ Calculus - まずは遅延評価から : 404 Blog Not Found
    nitoyon
    nitoyon 2008/02/04
    遅延評価が分かりやすい。
  • ライブドアブログ|無料で豊富な機能が充実

    RE:婚編 LV80 誹謗中傷する人は、反響があると喜んじゃうから、相手にしないで欲しい。【FFXI】

    ライブドアブログ|無料で豊富な機能が充実
    nitoyon
    nitoyon 2008/01/17
    amachangを誘う経緯、228名問題、Haskell-JS比較資料(http://www.slideshare.net/ujihisa/from-javascript-to-haskell/) / サイボウズラボ名刺を7つ集めよう。私もあと5枚!
  • ライブドアブログ|無料で豊富な機能が充実

    絵日記 グルメ ライフスタイル・暮らし ペット 旅行海外 日記 ニュース スポーツ ビジネス・経済 趣味・創作 音楽 書籍・雑誌 漫画・アニメ ゲーム 受験・学校 ヘルス・ビューティ IT・家電 学問・科学 まとめ

    ライブドアブログ|無料で豊富な機能が充実
    nitoyon
    nitoyon 2007/12/18
    厳密な言語の面白さ。厳密になれば、高速化できたり、解けない式が解けたりする。
  • 2007-11-06 - 一寸先は餡の雲、先は文乃さんストーリー

    04:20Haskell が理解できる気がしてこない。諦めたい気分になってくる (実際書いてるコードは理解しなくても書ける範囲でしか書いてない)。いやもちろん誰かに「やれ」なんていわれているわけじゃない。理解できなくてくやしい。lift が全くわからない。「モナドの全て」の説明を読んでもわかった気にさえなれない。頭が悪い。当に悪い。頭悪いのを実感できる分野は苦手だ。数学とかまさに。Haskell は数学に近い。ただプログラミングということになっているから耐えられる。いややめるかも。頭のいいわるいなんて生まれつきだから、そんなのいまさらどうしよもない。理解できる人には理解できるんだろうなぁ。IO モナドが副作用を閉じこめているのは (そういう説明がされているから) わかった気になる。それを扱うとき、そのモナドの中で (この表現が正しいかよくわからない。つまり do ブロックの中といいたい)

    nitoyon
    nitoyon 2007/11/06
    Haskellはreturnやifを理解するのも大変らしい…。
  • 1