(娘5歳8ヶ月)娘の好物と年長さん1学期のお弁当記録 娘をただ微笑ましく見つめていただけなのに……(夫) こっこの最近の好物は「にんじんしりしり」と納豆を混ぜて食べること。 我が家のしりしり&納豆好きといえばまず夫ですが、夫は卵入りのしりしりが好きで、こっこはにんじんとツナのしりしりが好き。わたしはどっち…

(娘5歳8ヶ月)娘の好物と年長さん1学期のお弁当記録 娘をただ微笑ましく見つめていただけなのに……(夫) こっこの最近の好物は「にんじんしりしり」と納豆を混ぜて食べること。 我が家のしりしり&納豆好きといえばまず夫ですが、夫は卵入りのしりしりが好きで、こっこはにんじんとツナのしりしりが好き。わたしはどっち…
…という類<たぐい>の質問に答えるのはちょっと面倒なんですけど、とりあえず1つだけ具体例を挙げておきましょう。テンプレート処理が、もろにモナドになっている、ってハナシ。今回はテキスト処理について説明。次回(いつになるかまったく不明)はXML処理の予定。 テキスト処理だけでも長ーい説明(最長記録かも)なのだけど、分割すると“勢い”がなくなるから一挙掲載。読むときはユックリ・ジックリ読んでくださいね。プログラミング課題も、実際にコーディングしないまでも、「こうやればいいな」という方針くらいは考えてください。 ※印刷のときはサイドバーが消えます。 内容: ネストしたテキスト テンプレート処理 ブロック、文字列、名前 フラット・テキストとテンプレート・テキスト 多段階のテンプレート処理 蛇足 素材を整理しよう モナドに向かって突っ走れ!! バッチリ、モナドだぜぇ 残りは脱兎のごとく 最後に言ってお
先週書いたエントリー「圏論やモナドが、どうして文書処理やXMLと関係するのですか?」の内容を実際に確認するためのJavaScriptプログラムを書いてみました。 3つの関数を含み、全部で12行のライブラリです。 /* templ-process.js */ function processTemplate(templ, con) { var a = (templ.replace(/\}/g, '{')).split('{'); for (var i = 0; i < a.length; i++) if (i%2 == 1) a[i] = con(a[i]); // コンテキストconは関数 return a.join(''); } function processContext(con1, con2) { return function (k) {return processTemplat
追記:ページ詳細 - 関数を返す関数と数字 - 素人がプログラミングを勉強するブログ - livedoor クリップを参考に、to_nを修正 高階関数を使えば、0以上の整数を表現できるような気がしたのでやってみる。 0が0で、(function() 0)が1。 大きい数を入れるとtoo much recursionになっちゃうから、実際は3000くらいまでしか表現できない。 function wrap(n) n && function() wrap(n - 1); function to_n(n) n && to_n(n()) + 1; function sum(a, b) a ? sum(a(), function() b) : b; function max(a, b) (function f(c, d) c ? d ? f(c(), d()) : a: b )(a, b); func
「JavaScriptによるテンプレート・モナド、すっげー簡単!」にて: 紙と鉛筆でラムダ計算を実行できることは必要だな、やっぱり。 なんて強調したので、ラムダ計算の入門、いってみよう。 [追記]練習問題集を追加しました。説明を読みながら、あるいは読んだ後で是非やってみてください。→「JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集」[/追記] ※印刷のときはサイドバーが消えます。 内容: JavaScriptの関数リテラル ラムダ式ってなんだ ラムダ計算の体系と適用操作 ラムダ式の例をいくつか β変換 -- ラムダ計算のキモ! β変換を何度か実行してみる 中間まとめ、まだ続きがあるよ JavaScriptの関数リテラル 最初に、JavaScriptに関する知識を確認しておきましょう。なお、JavaScriptの対話的実行環境については「もっともお手軽な対話的JavaScr
このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く