プログラミング

pureいじってみる

先日、id:nskj77 さんに教えてもらった、Pureという言語を試してみた。簡単に、pureの特徴を説明すると、 動的関数型言語 文法はモダンな関数型言語(ML, Haskell)に似ている lexical closures 置き換えモデル パターンマッチ StringはUTF-8 LLVM採用 なんと…

shebangについて

今日の新人君はシェルプロ書いていた。で、コードみたらshebangの!とパスの間にスペースはいっていなかった。僕あける派。で、いろいろ本とか見てみたんだけど、あいているの無かった。何かでshebangの!後はあけるべきというの読んだんだけどなんだったのか…

コードをHTMLにして付箋とかでレビューツッコミできる仕組み

昨日twitter上でhsbtさんが急募メソッド使って募集していたんだけど、前に見つけてすぐに思い出せなかったので、備忘録。宍道湖(しんじこ。Matz江にある湖の名前な)というやつ。Railsを動かすための言語RubyとSubversionがあれば、コードのHTMLを生成して、…

ひさしぶりにOCaml

最近、ちょっと思うことあって、OCamlの復習やっています。 まぁ、最近は関数型言語というとScalaですからという流れみたいなので、あまのじゃく的な僕としては、Ocamlということで。(ホントは、Scalaインストールするのたいへんだと思っていました。portsで…

-1を最大値として使われているのが苦手

C言語で書かれたソース読んでいて、定数を表すマクロの実装が #define MAGIC_NUMBER ((u_int)-1) とか、書かれていると悩んでしまう自分がなさけないです。肩から1を引いてるって思ってしまって、だからどんな値やねんと、ひとしきり考えた後、キャストかと…

なくなってから気付く大切さ

前のプロジェクトのときって、テストサーバとかの環境を僕が自由にしていたから、Xで使うときのCntlの位置が正しい位置(Aの隣)だったり、emacsはいれなくても、rubyのパッケージは必ず入っていたりとか、実は僕が使いやすい環境に設定していたのですが、今回…

何故配列のインデックスが0から始まるのか

「何故配列の添字は0から始まるのか」を理解する方法 (Kanasansoft Web Lab.)より。これって、C言語を知っていれば簡単に説明ができます。 int a[5]; と、配列を宣言した際、intのサイズのメモリが5個確保され、aにはその配列の先頭アドレスが入ります参照:…

vimでcscopeを使う備忘録

今日はソース読み。以前、Twitterで吉岡さんがcscopeを勧めていたので、ちょっとvimで使う方法を調べていたので、忘れないように備忘録。まずは、cscopeのデータベースを作成。 $cscope -b hage.c # -b で相互リファレンスのみ作成 とすると、カレントに、"c…

リファクタリングとテスト

最近ふと思ったんだけど、リファクタリングがしやすいコードとテストがしやすいコードって、同じようになるのだろうか。 まぁ、僕の関わる仕事には関係ないんだけど。

ネタにマジレスしてみる

jijixi's diary - 動的型付け言語でランダムテストを使った場合にあらわれるパラノイアがネタエントリだとわかっているんだけど、この部分について、ちょっと。 では、これが動的型付け言語だったらどうだろう。テストするのは同じく int -> int な動作をす…

gauche.night行ってきました

今年も、いってきました。今回は遅刻しませんでした。内容は、yharaさんの 第2回gauche.nightログ おまけつきが秀逸なので、そちらを見ていただいたらいいんじゃないでしょうか。以下、感想駄文。入場したらすぐにプログラミングGaucheの先行発売されていま…

制約プログラミング楽しそう

Jリーグの対戦予定作成に制約プログラミングソリューション − @ITを読んで、制約プログラミングってこういう分野にもつかえるんだなぁっておもたt。制約プログラミングといわれてすぐ浮かぶのはprologなわけなんですが、やっぱりprologとかいってしまうと…

久しぶりにFizzBuzzでも

最近、よくC言語を書いたり読んだりしているのに、一度もC言語でFizzBuzz問題を解いていなかったので、今更ながら解いてみます。普通に解くやりかたは答えを知っているためつまらなかったので、標準ライブラリ抜きで、といってもwrite(2)は欲しいので、unist…

完璧を期す

昨日のエントリにて、動かないソースを公開していました。ちゃんと動くコードを再掲することにより、お詫びに代えさせていただきます。 $ cat add.c #include <stdio.h> #define my int #define sub int sub main() { my $a = 4; my $b = 3; my $c = $a + $b; printf(</stdio.h>…

gcc 勉強会したい

今日、ちょっとソースを読む時間があったのですが、ひさしぶりに知らないgccの拡張記法にであいました。 int hoge [] = { [0..10] = 3 }; どうやら、これで配列のindexが0から10までを3にした配列になるようです。いやぁ、gccが独自に拡張記法をもっているっ…

Hello Worldの理由を推測

今日も今日とて、C++言語のからくりを読んでいました。頭から読んでいたら、仮想関数についてのお話になり、ちょっと休憩と思い、最終章の座談会の部分を読み切りました。それを読んでいて、C言語っていうのは、それまでアセンブラで書かれていたのをもっと…

()があるから読めないとかいってるやつはゆとり

Lispとかで、()のせいで読めないといっていたりするけど(自分も)、よっぽどCで、キャストと*と&と[i]が入り組んでいるほうが読みにくいと思った。なんか、言語とかって、結局現在の普及しているアーキテクチャから考えると誤差でしかないというのはわかって…

ついにでた

世間では、LLな言語が争っている中、一方では、lambda計算についてもりあがっているクラスタもあるという今日。そんな日に、ついにArcがでたみたいですね。とりあえず、Macならサイトからファイルを落として、portでMzschemeを落とすだけの簡単なお仕事で動…

相手がわからないと大変だ

仕事で、他のかたにプログラムの修正方法を教えるというメールを書いたんですが、その相手のかたにあったこと無いのと、どのぐらいのかた(年、技術的なこと)がわかっていなかったので、すごく文面と内容に気をつかった。全部を教えるんではなくて、こうすれ…

JavaFXの存在を忘れていた

以前、windowsとMacでも使えるGUIの開発環境として、僕はAIRを選択したんだけど、最近DataGridをActionScriptから使おうとして挫折してるところに(ActionScript3のリファレンスに書いてあるサンプルを動かそうとしているだけなのに)、WindowsUpdateでsilverl…

継続よくわからん

なんかJavaからRubyへによると、これからの時代は継続らしい。というわけで、Haskellで継続を調べてみると、Continuation モナドというものがあるらしいのだが、継続渡しというのがわかっていないといけないみたい。そして、よい子は継続モナドは使っちゃダ…

ActionScript3.0雑感

ここ1週間ぐらいAIRで遊ぶためにActionScript3.0をさわっていたので、その雑感をまず、型宣言になれない。型があるというのはいいんだけど、var 変数名:型名という書き方が、僕が経験したことのないやり方なので。リファレンスとかみても、ぱっと何の型なの…

SとKでI

週末行われたKANASAN.jsのレポートを読んでいると、Kコンビネーターやら、Sコンビネーターというキーワードが乱舞していたので、SKK = Iや翻訳:コンビネータ論理チュートリアル、Unlambdaを読んでましたなんとなく理解はしたんだけど、実装して試してみよう…

エディタについて

なんか、はてぶにPHPのおすすめのエディタというのがあがっていて、Windowsって選択肢がたくさんあってたいへんだなぁと思った。かくいう、自分はvimerであるわけでして、でもここにいたるまでは、TeraPadから始まり、大学ではmedowを強制され、初めてのプロ…

なぜhaskellとかをやるのか

id:TeRuの研究室でOBが来て、なにやら、はてなは非モテだとか、rubyだのtwitterだのhaskellだのいって帰ってったらしい。で、TeRuが時間があればやりたいみたいなこというもんだから、やめて機械語勉強しろといった。今、Rubyであれば、たいていのlinuxディ…

久しぶりにCを(ry

というフレーズを吐くのは何度目だろう。ホントに書けなくなる。まぁ、includeをshebangにしてしまうだとか、セミコロンって必要なんですよねとかはおいておいて、久しぶりに書くとコンパイル以外ででたエラーの悪いところがわからなくなる。今日やったのは…

最近読み返そうかなと思っている本

最近、「アルゴリズムを知らない子ども達」の補足(?)やマシン語を知らない子ども達を読んで、持っている本で読み返したいなぁと思った本をいくつか。計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,G…

命題、論理

curryを始めようとしたタイミングで、sumiiさんのITproの連載が、ちょうど良いタイミングで命題論理について。カリー・ハワードの対応というのを初めて知った。それに、古典論理や直感主義論理というのは初めて知ったなぁ。論理学も、大学時代に授業であった…

Yコンビネーターの必要性がいまいち

会社にて、教育担当だった方から、「遅延評価のλ計算のシミュレーター作ったからやっとけ(そうとう意訳)」というメールが来ていたので、ちょっとそのチュートリアルを読む。で、チュートリアルの応用編と書かれた部分で、Yコンビネーターについての部分が…

ログ用出力部分と処理をわけたい

最近、今まで書いたスクリプトを他の人も使えるように、修正したりしていたんですが、ログ用の出力をスクリプトに追加したら、何をやっているスクリプトなのかわからなくなった。機能単位にコマンドにしているものだから、コマンド打つたびに、ログ用の出力…