タグ

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

  • ボレロ村上(村上原野)さんと constexpr のこと - d.y.d.

    22:22 21/11/20 ボレロ村上(村上原野)さんと constexpr のこと 去る2020年2月、縄文陶芸家にしてC++プログラマという希有な二つの顔を持つ人物がこの世を去りました。 ボレロ村上 (村上原野) 氏です。 正直なところ、陶芸家としての彼の側面については私はほとんど何も知らないに等しいです。 残された作品を見て何かを語れるほど芸術に通じているわけでもありません。 いつか機会があれば見に行こうと思っていた村上さんの作品を目にする最初の機会も、 昨年訪れた追悼展になってしまいました。 ただ、それでも私は、彼自身の登壇発表の資料 であったり、 そして何よりも縄文・陶芸に造詣の深い方々の記された幾つかの文章によって、 彼が一体何を成し遂げたのか、成し遂げようとしていたのかに触れることができています。 この夏にはクラウドファンディングで 作品集 も出版され、誰でも手にとって縄文

  • [KMP77] を読んでみた - d.y.d.

    17:53 14/12/22 ソートの逆流れ クイックソートってあるじゃないですか、クイックソート。 配列、たとえば [4,2,1,7,0,6,5,3] があったときに、 小さい方を左に、大きい方を右にまず適当に集める。 この「小さい方」と「大きい方」への二分割を、いわゆる再帰的に、 分かれたブロック両方で同じ事を繰り返していくと… なんと、小さい順に並んだ配列 [0,1,2,3,4,5,6,7] が出来上がるというアルゴリズムです。 逆向き! このデータの流れを「逆向きに」見てみたい。つまり、ソートが終わった最終状態から話が始まります。 しかも、さっきから説明なしで意味ありげにくっついていた、 「入力配列で元々どの位置にあったか」を表す値に注目していきます。 0の上に[4]がくっついているのは、最初は値0は配列のインデックス[4]の位置にあった、 ということを意味しています。(上のソート

    [KMP77] を読んでみた - d.y.d.
  • TRICK 2013 @ RubyKaigi - d.y.d.

    22:41 13/06/01 TRICK 2013 @ RubyKaigi いろは歌。 in Ruby. !@THEqQUICKbBROWNfFXjJMPSvVLAZYDGgkyz&[%r{\"}mosx,4>6]|?'while(putc 3_0-~$.+=9/2^5;)<18*7and:`# ということで、ASCII の制御文字じゃない部分、' ' (0x20) から '~' (0x7E) まで95文字をちょうど一回ずつ使って、 その95文字をちょうど一回ずつ標準出力に書くプログラムです。Ruby会議に合わせて開かれた TRICK 2013 という、プログラムの"お前はなにをやっているんだ度"を競うコンテストに出してみたら優勝してしまいました。 やった! 簡単な解説 「各文字を1回しか使わない」 という制約が真っ先に効いてくるのは、 これすなわち、 1個の変数を1度しか使えない、 とい

    youz
    youz 2013/06/01
  • ICFPC 2011 - d.y.d.

    22:15 11/06/27 ICFPC 2011 ここ 8 年くらいほぼ毎年参加していた ICFP Programming Contest ですが、今年は出題者側に回ってみました。 問題の原型決定の議論、画像に変なネタを仕込む、Windows版バイナリのビルドをする、対戦サーバの中身を突貫でどうにかする、 などなどをしていました。 ゲームのバランス調整が非常によくできていたとの評価を頂いているのですが、 肝心のその辺りは、出題チーム内の熟練者達の高度な議論に既についていけなくなっており、 私は全然貢献できていないという…。 詳しいことは 9 月の ICFP で発表があると思いますので、ここでは今年のテーマの紹介だけ。 公式の問題文はこちら です。 一言でいうと、関数を呪文に変えて撃ち合う、プログラミング魔法バトル。 Lambda: the Gathering L:tG という2人対戦ゲー

  • 関数と正規表現と私 - d.y.d.

    00:46 10/04/23 EDBT/ICDT 2010 先月 EDBT/ICDT 2010 という学会に行ってきたのですが、それについて何も書いてなかったので今頃書きます。 自分より一ヶ月後に同じローザンヌに行って噴火に巻き込まれて帰国まで延びてしまっているみずしまさんがお帰りになるよりは早く書かないと的気分がなきにしもあらずです。 データベースの会議なんですが、 こちらの分野は SIGMOD/PODS の流れで、 実装寄りの会議と理論よりの会議を合わせて共同開催するブームらしい。 参加者としては、色んな幅広いトークが聴けるのは単純に楽しいので、もっと広まると面白そうだなあと感じました。 プログラミング言語で言うと PLDI/POPL とするみたいなものでしょうか。 それが良いかどうか判断できるほどPLDIの方の雰囲気を知らないのでわかりませんが。 オートマトン方面だと CIAA/DL

    youz
    youz 2010/04/01
    凄いw >Strict モードで "Hello, world!\n" を出力する
  • d.y.d. - セキュリティ&プログラミングキャンプ

    17:05 09/08/31 FLTV FLTV で、 『レトリカルプログラミング』(副題: 真・自然言語プログラミング)と題して発表してきました: 発表スライド。 未来の言語…と言われて、いつもしているような言語機能妄想をバラバラと語ればよいのかなー と思って途中まで発表ネタを組んでたのですが、 やっぱり一スジが通ってる方が面白いだろうということで、一つ軸を通しました。 テーマは「日語や英語をプログラミング言語と見なしてみると、 実はヤツらはとてもパワフルで凄いので未来の言語は是非パクるべき」。 スライドでは私の思う具体例を3つほど挙げてるんですが、 まあそれはあくまで例でして、伝えたかったのは 「ちょっとみなさん自然言語からプログラミング的な『機能』を探すという考え方をしてみると面白いかもですよ?」 という軸そのものの方です。きっとあの3つの他にも色々あるはず。 ネタ元は、 今年の

  • 思考実験: 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

  • 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 (日本語訳)

  • d.y.d.

    00:18 05/11/26 経県値 母上からの指摘で秋田県が赤くなりました。修正。 山形と茨城もこれでよかったか微妙に自信なし。 (追記:茨城も赤いことが判明。) 木和 私の Tree Summing のコードが見たい人は、このページのソース内コメント 読んで下さい。「もっと読む」機能とか実装するの面倒なので手抜きばんざい。 あーでも、自分で解いてみて、できれば2日くらい悩んでみた人じゃないと 読んでも全然面白くないと思いますよん。 C言語の言語仕様の隅を突いてコードを短くする技能ってのは完璧に趣味の領域に 属すると思いますが、それとは別の「短く簡潔に書けるアルゴリズムを考える」能力の 方は、普段からわりと重要なのではないかという気もします。単純な話、コードの量が 少ないほど、バグの元も少ないわけで。例えば今回の問題を解くためだけに、自分 でTreeクラスを定義してそれを生成するpars

  • /brainfuck2d

    youz
    youz 2008/10/01
    DのCompile Time Function EvaluationでBrainfuckをD言語に変換->ネイティブコンパイル
  • d.y.d. memo: POPL 2

    17:17 08/01/30 ところで C++JavaScriptPHP が批判されてるのを見ると思わず何か言いたくなってしまうのだけど、 考えてみるに、他の言語だと割とどうでもいい。そういう意味では、今の自分が好きなプログラミング言語は この3つということになるのかなあ……などと徒然なるままに思いました。 単純に、つきあいが長い方から3つというだけかもしれない。 いやしかし、PHPに対する批判の多くはその通りであるとは思うのですが。 Attacking PHP で触れられてる「リストであり辞書でもある」 array ってあれは普通に便利じゃないです? 結構他の言語でも欲しくなるのですが。 17:08 08/01/29 PHP で Yコンビネータ PHP じゃ Y コンビネータつくれない と聞いて。 <?php // PHPでは関数呼び出しは 関数名(...) か 変数(...

    youz
    youz 2008/10/01
    PHPでYコンビネータ
  • d.y.d. Pluggable Type Systems

    19:27 08/02/29 不動点ふたたび LtU で "Data Types a la Carte" を読みました。これの鍵となる技は「型コンストラクタに対する不動点演算子」だと思うのだけど、 あれ、なんで俺これ考えたことなかったんだ…?と不思議に思うくらい楽しげなアイデアですね。てい。 // 不動点演算子 via テンプレート。Dで。 // // Haskell でいう"普通の"不動点関数 fix f = f (fix f) と同じようなもの // = の代わりに継承になっちゃってますけど、まあ似たようなものです class Fix!(alias F) : F!(Fix!(F)) {} 不動点演算の実装は題ではないので、Yコンビネータみたいな無駄な複雑化はしない方針で。 さて、これを使って class Pair(T) { T left; T right; } 2個同じ型の値のペアを

    youz
    youz 2008/10/01
    Descent
  • アルゴリズムコンテストの挑み方 - d.y.d.

    17:29 08/09/30 クロスワード 暇つぶしに "Clueless Crossword" という冊子を買ってみて意外とハマっています。 クロスワードパズルなんだけど、単語のヒントの代わりに、 各マスに1~26の数字が振ってあって同じ数字のマスには同じA~Zが入るように埋めるというもの。 「母音っぽくて二連続して語尾にも出てくるのは多分 E だろう、もしかしたら O の可能性はなくもないけど」 みたいに埋めていく。 ちょっと違うけど フラッシュであった。 20:15 08/09/28 だいちのよろい そろそろ日に戻る前に観光するぞ月間、ということにして、ウルル(エアーズロック)に行ってきました。 もっとワイルドな感じかと思ったら、完全にリゾートのリゾートによるリゾートのための地帯になってました。 まあそんなもんか。 日は強風のため登るの禁止とのことだったので、周りから見るだけ。

  • d.y.d.

    20:28 07/12/31 年末まとめ あらためて読み返してみると今年全然日記書いてないなー。 ・わなD書いた。D 1.0って今年だったのか…。 なんかこんなの書くよりもちゃんとした規模のアプリ一書く方がハタから見てて面白いよなーとか 思うんですけど、全然やる気がないのが問題。 ・PLAN-X'07行って発表。 ・アスカなんですけど今見たら回数4000回近くなってたので カンストの後何時間やってるんだ俺は。今年は冥炎と銀とカカルーと一致と盾なし白蛇クリアして万歩に挫折中です。 ・COBOL覚えた。 ・"扉の外Ⅱ" 読んだ。ⅠとⅢはそこそこだけど これはかなり自分内ヒット。ゲームを段階的に多重に重ねてく辺り巧い。 ・Boost改訂してたのって今年だったのか…。 ・人賞に "Sweet Days" っていうのが当凄いなあと感心したり。 ・J覚えた。 覚えたんだけどこれでゴルフ以外の

    youz
    youz 2008/10/01
    無限リストの扱い方
  • d.y.d. 最大流

    22:18 07/11/17 マックス流 桜庭氏に資料を教えてもらったり。 とりあえず [PDF] A New Approach to the Maximum-Flow Problem を読んで理解したつもりになって実装してみたもの → goldberg.cpp。 何の変哲もない、と思います。まだ何の賢いヒューリスティックスも積んでません。 計算量の証明全然追ってないので細かいところが怪しい気がします。RELABEL の時ってキューにpushし直さないと いけないんだっけ。 imbue( locale("C") ) してるのは、しないとVC++で 整数の直後に','が来るとヤバいというのに引っかかったからです。このバグ一昨日初めて知った…。 19:14 07/11/16 最大流 昨日のコード、nyaasanのでいうfinishedみたいなチェックを入れないとO(|V|^2|E|)に なって

    youz
    youz 2008/10/01
    J言語チュートリアル
  • d.y.d.おもしろいみろん

    13:33 08/06/29 RSS of kmonos/wlog moved! http://www.kmonos.net/wlog/index.rdf いや、移動したのは15ヶ月前なので、すでにご存じの方は華麗にスルーしてください。 「ここのRSSが文字化けしてるよー」という方だけ、↑に登録変更していただけると、 直るかと思います。お手数おかけしてスミマセン。定期的に「文字化けってる」という 指摘を見かけるので再度ブロードキャストです。こう、辛辣な評議会とかで怒られそうですけど、 諸般の事情により古い方からリダイレクトかけるの難しいらしいのだよね… それはそうと、昨日の記事に追記しました。 10:26 08/06/28 Logic ∩ CS 検索してたらたまたまヒットした "On the Unusual Effectiveness of Logic in Computer Scienc

  • わかったつもりになるD言語

    はじめに 2012年5月現在、最近、このページはあまり更新できていません。すみません m(_ _)m。 D言語友の会 が、長期間ちゃんと更新されている D 言語関係の日語サイトとしておすすめです。 こんにちは。ここは、プログラミング言語 D (D Programming Language, 通称D言語)を紹介するサイトです。 すでに Java など一般的なプログラミング言語の経験がある読者を前提として書かれています。 一部古いページを除いて、基的に、D 2.x 系統の言語仕様をベースに解説しています。 → 更新情報は RSS で 目次 1. Dってどんな言語? サンプルコード色々 D言語を大きくカテゴライズすると、「C風の構文を備えた」 「静的型」の「ネイティブコンパイル」言語と いうことになります。オブジェクト指向やテンプレートメタプログラミングなど、 幾つかのパラダイムをサポートし

  • ゆの in D - d.y.d.

    17:37 08/07/30 ICFP Workshops via 住井さん で、 ML Workshop の採択論文リストが出てることを知りました。 "Many holes in Hindley-Milner" (複数穴あり Zipper 的なものをMLで扱う話、穴の個数を型情報に含めるための加算できる自然数表現を差分リストで、 っていう技が面白かった) と "Unrestricted call-by-value recursion" (call-by-value で再帰的な (ループした) データ定義を実現する手法、これで、フルの call-by-need セマンティクスがなくてもそっち方面で使われてる テクニックをいくらか持ってこれるよ)というのだけ読んでみた。 他の併設ワークショップ の論文リストも 揃ってきてるみたいですね。 個人的に WGP の "Concepts =? Typ

  • d.y.d.Я9Я∽

    10:14 08/04/29 いろいろ 来月末 東京メトロ沿線ウォーキング のために、じゃなかった、友人結婚式があるらしいので、ちょっと一瞬日に戻ります。 いやまあ、メトロウォーキングには行きますが。 りふぁらにれす アニメ、というのが通説らしいですが個人的にはゲーム。 プログラミングと俺(続き) 前回 書き忘れた。中学校の"技術"の授業で LOGO でタートルグラフィックスとかもやりました。 使ってた処理系でどこまでできたのかは全く知らないのですが、まあひたすらお絵描きしてました。 つまりメガデモ製作です(違。いろんな図形を描くときそれに伴って動くタートルをいかに作品内に取り込むか など真剣に考えたりしてました。LOGO っていう言語についてはもう、「てじゅんは」っていうキーワードしか 覚えてないですね。タートルグラフィックスって、適当なコードを適当にパラメタ変えて色々走らせると す

  • 1