タグ

ブックマーク / www.kmonos.net (22)

  • TRICK 2018 (FINAL) 3連覇! d.y.d.

    21:24 18/06/02 TRICK 2018 (FINAL) 3連覇! 世界の Rubyist が集う RubyKaigi というイベントに時々併設される、 TRICK というコンテストがあります。 「一番変なRubyプログラムを書いたヤツが勝ち」というコンテストです。 前々回(Rubyでいろは歌)、 そして 前回(Ruby円周率覚え歌) と、なんとも驚いたことに私が2回続けて優勝していたのですが、今年が第3回。 やりました。3連覇を達成しました!今回のネタは… 予約語テーブル Ruby の言語仕様のページに、 予約語の一覧を表にしたものがあるんですよ。これです。 これの真似をして予約語を並べてみました、というのが今回の作品です。 alias BEGIN for unless def class super true or return defined? next break wh

    tyru
    tyru 2018/06/03
    予約語のみで Ruby として読めるプログラム
  • 汎用ソート殺し - d.y.d.

    00:26 12/12/18 BookLive! 7月に出会ってからずっと電子書籍ストアとして BookLive! をひいきにしているのですが、一体どこが好きなのか語りたくなりました。 ITMedia の これでもう迷わない、電子書店完全ガイド という一連の記事の、 電子書籍の端末の話よりストアの話をしましょうよというコンセプトに思いっきり影響されています。 といっても、第一印象が「普通のことが普通にできるので感激した!!」というもので、 つまり今年の前半に使っていた幾つかの電子書籍ストア/専用アプリが残念だっただけかもしれません。 買ったがどこをクリックすれば読めるのか理解するのに10分かかった、とか、 6冊以上買うと棚アプリから画面外にがはみ出るので手でいちいち棚を変えて整理しないと読めない、とか。 当に普通に使えるという以上に特筆することもないんですが、 あ、でも、今年になる

  • 計算のきまり - d.y.d.

    00:41 11/08/04 計算のきまり ( )を使った式の計算には次のようなきまりがあります。 (□ + ○) × △ = □ × △ + ○ × △ (□ - ○) × △ = □ × △ - ○ × △ ... たし算とかけ算には、次のようなきまりがあります。 □ + ○ = ○ + □ (□ + ○) + △ = □ + (○ + △) □ × ○ = ○ × □ (□ × ○) × △ = □ × (○ × △) この考えを使って、くふうして暗算で計算しよう。 小学校算数 5学年 - Wikibooks 分配法則・交換法則・結合法則。 とても当たり前で、当たり前すぎて、ほとんどの人は、もう特に意識することもない法則かもしれません。 でも、プログラミングを知っている僕らは、立ち止まってこの法則の価値に触れることができる。 末尾再帰化 最近のコンパイラは、こんな最適化をします。 i

  • 20分でわかるPurely Functional Data Structures (PDF)

    20分でわかる Purely Functional Data Structures k.inaba (http://www.kmonos.net/) Apr. 4, 2010 あらすじ イ ミ ュ ー タ ブ ル デ ー タ 構 造 は 遅 い Immutable Object だけで作るデータ構造 このの 内 容を 全速力で 布教する お題:キュー (Queue) • FIFO (First-In First-Out) • pushBack(e) でデータeを入れる • popFront() で取り出せる • 入れた順に出てくる • 以上 破壊的キュー Immutable Object でない 打倒すべき目標 代 入 手続き型でよくある interface Queue<E> { void pushBack(E e); E popFront(); } よくある実装 1 2 3 ・ 4 ・

  • w.l.o.g.

    07:13 04/08/31 情報元は失念…。 「釜井たちの夜」 というソフトがとても面白いんですけど! どういうものかはリンク先の スクリーンショットを見ると一発でわかると思いますが、もう、思わず 朝っぱらからカメラの前をうろうろしてしまいました。 14:02 04/08/25 Wittgenstein shelarcyさんに紹介いただいたので『認知意味論』 を読んでみようかと思います。ありがとうございます。著者名に見覚えがある…と思ったら、 昔、同じ人の共著『レトリックと人生』を読んだことがありました。 4段目 これで最後。 左の山は雑誌とか通販のカタログとか学会のproceedingsとか楽譜とかのデカブツ。 『アルフレッド・ ジャリ』。Amazon曰く、「パタフィジック」を創始し、世紀末のパリを弾丸のごとく 駆け抜けた天才詩人の半生を愛情あふれる筆致で描く決定版伝記です。 妙な経緯

    tyru
    tyru 2010/12/20
    内部イテレータと外部イテレータのメリットとデメリットについての話。自分が言語作るとしたらpythonみたくどっちもサポート...ってやるかも(思考放棄
  • letsboost::mem_fn

  • w.l.o.g.

    01:23 04/07/30 Windows Microsoftの人のLonghornの話を聴いていて、 Monad Shell の Commandlet を操るには文字ベースのシェルに拘る必要はなくて、 ストレートに GUI 化できるんじゃないかという気がしてきました。公開されたら ME (Monad Explorer) 作ってみようっと。 Windows → 訳 Windows (2000以降?) で [Alt]を押しながらテンキーの 1, 2, 6 を順に押してAltを離すと、 '~' が入力されます。 D言語 FAQ うわ、初耳。1バイト文字の文字コードを直接打ち込めるみたいですね。 訳 → [cppll:11018] <fyi> The Design and Evolution of C++ 原著を読もう読もうと思いつつまだ買っていなかったのですけど、 翻訳が始まったらしい。

  • w.l.o.g. ギャップバッファ

    04:40 04/06/04 ピーステーブル PieceTable とも言う。文字列の Piece(小片)を繋げて、 一つの巨大な文書を表現する方式。 検索すると引っかかる文書のほとんどが AbiWord 関係なので、 このワープロソフトの主要な内部データ構造ということなのかな。 他に、MS-WordやOpenOffice.org関連の文書にも登場していて、 基的に単なるテキストエディタよりは、文字に付加情報をくっつける系の 編集ソフトに使われる場面が今のところ多いみたいです。 余談ですがAbiWordは、綱渡り的にですがBeOS版の開発が続いている貴重なワープロソフトなのです。感謝感謝。 概要 ファイルを読み込んだとしましょう。ABCDEFG、という7文字のファイル。 とりあえず、7文字分のOrigという名前のバッファを用意して、そこに格納します。 それと別に、Addという名前の空のバ

  • テキストエディタを作るメモ

    初出:2001/12/12 最終更新:2005/07/25 私がGreenPadを作ろうとしたときに 調べてまわって作ったリンク集です。OSやToolkit提供のコンポーネントを 使うのではなく、「独自のテキスト編集コンポーネントを一から作る」場合に 参考となるものを集めました。Windows系に偏っている感が無きにしもあらず。 ソースコードの公開されているエディタやコンポーネント C GNU Emacs (色々な環境) JED (Unix,VMS,MSDOS,OS/2,BeOS,QNX,Win) Meadow (Win) nedit (Win) ne (Unix) Ng (AMIGA,Human68k,MSDOS,Unix) TextMaid (Win/GTK+) tolstoj (Win) vim (色々な環境) C++ Alpha (Win) GreenPad (Win) kajer

  • NYSL(煮るなり焼くなり好きにしろライセンス)

    English NYSL Version 0.9982 A. ソフトウェアは Everyone'sWare です。このソフトを手にした一人一人が、 ご自分の作ったものを扱うのと同じように、自由に利用することが出来ます。 A-1. フリーウェアです。作者からは使用料等を要求しません。 A-2. 有料無料や媒体の如何を問わず、自由に転載・再配布できます。 A-3. いかなる種類の 改変・他プログラムでの利用 を行っても構いません。 A-4. 変更したものや部分的に使用したものは、あなたのものになります。 公開する場合は、あなたの名前の下で行って下さい。 B. このソフトを利用することによって生じた損害等について、作者は 責任を負わないものとします。各自の責任においてご利用下さい。 C. 著作者人格権は ○○○○ に帰属します。著作権は放棄します。 D. 以上の3項は、ソース・実行バイナリの双

  • 文 - プログラミング言語 D (日本語訳)

  • 例外安全 - プログラミング言語 D (日本語訳)

    例外安全なプログラミングとは、 例外を投げる可能性があるコードが実際に例外を投げた場合に、 プログラムの状態が壊れずリソースもリークしないように作るプログラミングのことを言います。 これを正しく実現するには、既存の方法では、複雑で読みにくく脆いコード を書かねばなりませんでした。結果として、例外安全性に関して バグが残っていることが非常に多かったり、そもそも手間を省くために 例外安全が完全に無視されたりしてきました。 例として、数行の文を実行するあいだMutexをロックして、 終わったら解放するというケースを考えてみましょう: void abc() { Mutex m = new Mutex; lock(m); // mutexをロック foo(); // 処理を行う unlock(m); // mutexをアンロック } >foo() が例外を投げると、abc() は例外による巻き戻しで

  • d.y.d.構文解析の話をしよう

    16:46 08/03/30 YZ1.DLL 0.30 リリース しました。 具体的には、ヘッダの格納ファイル数フィールドに実際より大きい値が入ってると変なとこ読もうとして落ちるバグ修正。 GreenPad の修正は来週くらいには…。 Booooooost Boost 1.35.0 来てました。 Asio と Fusion と GIL の三枚看板がでかいですが、Bimap が地味に便利だ。 あと、mbさんのEgg のレビューが明日からでしょうか。(また スケジュール から消えてますが…Protoが入る前までロールバックしてる?) 他人事ながらドキドキ。 17:36 08/03/28 ケース 十年来の疑問なんですが、"case" に単独で対応する日語ってなんになるんですかね。 "case-insensitive" や "lowercase" の "case"。単に "case-insens

  • d.y.d. 2倍だけじゃない

    10:01 10/07/20 それでも2倍だ 先日のvectorの伸長度合いの記事に関して 当に1.5倍のほうがメモリ効率がよいのか という反応をいただきました。とても興味深い。みんな読みましょう。 自分の理解メモ: 「再利用ができるから嬉しい」等の議論をするなら、 今までに確保したメモリ (1 + r^1 + ... + r^k) のうち、 有効に使えてるメモリ r^{k-1} (バッファ拡大直後) や r^k (次のバッファ拡大直前) の割合で評価してみようじゃないかという。 まず簡単のために再利用をしない場合を考えると、この割合はそれぞれ (r-1)/r^2、 (r-1)/r になります(途中計算略)。 この利用率が最悪になる瞬間 (r-1)/r^2 を最善にしよう、 という一つの指標で考えてみると、式を微分なりなんなりしてみると r = 2 で最大(25%)となることがわかります

  • C++ Glossary

    このページについて C++関係の話に出てくる言葉で、「読んで字の如し」 とはいかない難解語の簡単な解説を並べてみました。Glossaryというより、 むしろ略語辞典になってしまいました。巷で見かけた単語を並べているだけなので、 実際の所ほとんど使われない略語もあったりするかもしれません。 ちゃんとした用語集は Bjarne Stroustrup's C++ Glossary などをご覧になることをオススメします。 用語集 ADL (Argument Dependent name Lookup) 引数に依存した名前の探索。 Argument Based Lookup, Koenig Lookup とも呼ばれる。 #include <iostream> #include <string> ... std::string s; std::cout << s << std::endl; // os

  • d.y.d. - Boost.勉強会

    13:54 09/12/31 年末まとめ 今年何をやったことや読んだものを振り返ろうと思います。 恒例のゲーム報告から行くと、 万歩 と 深遠HA クリアしました! その後他のダンジョンには潜ってないけど、何かまたそろそろ始めようかな…。 / プログラミング関係は、ハッカソン的なもので 何個か 小ネタ を仕上げただけで、 ちゃんとしたものは作ってないですね。困った困った…。 どっちかというと、勉強会的なイベントで発表するネタを考える方が多かった。 特にFLTV での "真・自然言語プログラミング" の発表内容は割と個人的に会心の出来なのですが、多くの方に好評いただけたので嬉しいです。 なんだかもう、しばらくの間は、私はそういうキャラということでいいのではないかと思い始めてきました。 ものを作ることに全力をかけている人は多いけれど、 「一見難しく見えることをいかに簡単に噛み砕いて見せるか」を

  • イヌネコ - d.y.d.

    03:14 08/08/31 LLFuture 行ってきました。まとめ記事は何百人も書いてそうなので、以下、これにかこつけて自分語りをする。 ☆ Larry Wall の基調講演。ひたすら Parser の話をしてて素晴らしかった。 ☆ 100年の言語…は、 Ypsilon の藤田さんが、エラーメッセージのわかりやすさについて考えてますか?という問いかけを されてたのが印象に残っています。個人的に この頃 から気になってるんですけども、 言語内DSL のようなものを作ること&そのDSLが正常動作するときに 裏でホスト言語で何が起きているかをまったく気にしなくていいようにすることは簡単でも、 そのDSLがそのDSLのシンタックスや静的セマンティクスとして間違っているときに適切なエラーを 出せるようにするのは非常に面倒、という感覚があります。ホスト言語の意味でのエラーを 出されてもユーザ側とし

  • Boost C++ Library プログラミング

    『Boost C++ Libraries プログラミング 第2版』 サポートページ 書名: Boost C++ Libraries プログラミング 第2版 著者: 稲葉 一浩 出版: 秀和システム 頁数: 760頁 定価: 体3,000円+税 ISBN: 978-4-7980-1704-4 2007/07/20 発売 ≫ 第1版 のサポートページはこちらです。 ≪ 書概要(目次・文サンプル) (2007/07/04 更新) サンプルソースコードのダウンロード (2007/07/17 更新) 訂正・追記情報 (2017/03/11 更新) ≫ 秀和システムの書サポートページ ≫ Amazonで注文 ≫ cbook24で注文 presented by k.inaba

  • 思考実験: returnを関数と思ってみる話 - d.y.d.

    21:07 09/03/26 zipWithN twitterでいけがみさんが張ってらした論文が面白かったです。 map f [a1, a2, ..., an] ==> [f a1, ..., f an] zipWith f [a1, ..., an] [b1, ..., bn] ==> [f a1 b1, ..., f an bn] zipWith3 f [a1, ..., an] [b1, ..., bn] [c1, ..., cn] ==> [f a1 b1 c1, ..., f an bn cn] ... zipWith7 f [a1, ..., an] [b1, ..., bn] ... [g1, ..., gn] ==> [f a1 b1 … g1, ..., f an bn … gn] Haskell98 の標準ライブラリの関数ですけど、 1引数関数 f と1つのリスト as

  • Brainf*ck

    アラン・チューリングという計算機科学者の考えた、 「チューリング・マシン」という仮想の計算機があります。 これは [0を書く]、[1を書く]、[右に進む]、[左に進む] と言った 非常に簡単な命令のみを実行できる想像上の計算機ですが、 我々の使っているパソコンでできるような計算は全て、 チューリングマシン用のプログラムとして書ける、ということが知られています。 …という前置きを付けてなんだか重々しい言語に見えてきたところで(^^;、 たぶんご存じの方も多いと思われる、わずか8文字の組み合わせで ありとあらゆるプログラムを表現する Brainfuck を弄ってみるとしましょう。 * Hello, World 導入 サンプル:表示1 サンプル:表示2 サンプル:echo * サンプル:足し算 サンプル:掛け算 C++によるインタプリタ実装 * サンプル:条件分岐1 サンプル:条件分岐2 まとめ