2003-08-01から1ヶ月間の記事一覧

#include #include #include #include int main(void) { Display *display; Window window; XSetWindowAttributes attres; XEvent event; display = XOpenDisplay(NULL); window = XCreateSimpleWindow( display, RootWindow(display, 0), 100, 100, 256, 25…

import javax.swing.*; public class HelloWorld extends JFrame { HelloWorld(String title) { super(title); setSize(100, 100); setLocation(10, 10); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] argv) { HelloWorld …

#Include int main(int argc, char **argv) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return 0; } gcc -Wall hello.c `gtk-config --cflags` `gtk-config --libs`

#include #include int main(int argc, char **argv) { QApplication app(argc, argv); QPushButton button("Hello world!", 0); app.setMainWidget( &button ); button.resize(100, 30); button.show(); return app.exec(); } コードはQtのチュートリアルよ…

[Zsh]

標準のシェル変更しました。 ディレクトリ名の展開にワイルドカード使えるのとか便利だなぁ と思いつつも、今までは必要な時だけ切り替えしてたのを、思い切って変更。 変更を決意した理由は、キーワードの補完でタブを続けて押すと、一覧表示の後順に挿入し…

GUI にも手を染めてみた。 GTK, X11, Qt, Tk, wxWindows,...etc 言語は、いまのところ C/C++ か Perl, Python だけど。 PythonのAnyGUIや、GtkのOCaml, Schemeも予定。 #include class MyApp : public wxApp { public: virtual bool OnInit(); }; bool MyApp…

PEAR に手をつけてみた。まずは、php.iniの設定。 UNIXでは : がセパレータらしい。 include_path ".:/usr/share/pear" 簡単な DB 接続のサンプル。DSN で利用するデータベースのタイプ、 ユーザー、パスワード、データベース名等を一括して指定できる。 inc…

行列のソート

Gnu text utilities の sort コマンド。 perl でいろんなソート方法を考えてみたけど、 配列を使うものはやっぱり遅かった。 Sort::Fieldモジュールにも、大量のデータを扱う場合は sort(1) 使った方がいいよぉ〜みたいなことが書かれていた。 sort -n -t , …

Peter Norvig 氏の邦訳記事を探していて、 発見したサイトでポストしてみた。 Haskellや MLのパターンマッチっぽく書けないかな。 python にも型推論欲しい... import parser, symbol def change(ast): if type(ast) is list: return map(change, ast) else:…

オブジェクト指向のサポートには全然目を向けていなかったので、 少しずつやり始めてみる。 class screen = object method outputToStdout s = print_string s end class printer s = object val screen = s method print s = screen#outputToStdout s end l…

Languages.PLIS って LISPライク(Schemeかな) インタプリタが組み込まれているらしい。 pike からPerlを利用するモジュールもある(オプション)

Rubyだと、既存のクラスにメソッドやイテレータを追加出来る。 これ、Python で出来ないかなぁ。 class Array def inject(n) each { |v| n = yield(n, v) } n end def sum() inject(0) { |n, v| n + v } end end [1,2,3,4,5, 6, 7, 8, 9, 10].sum 55

リストクラスを継承してあたらしいクラスを作る。 class NewArray(type([])): def sum(self): return reduce(lambda x,y: x+y, self) >>> alist = NewArray(range(1,11)) >>> alist.sum() 55

やりたいことの整理

HelloWorld を、いろいろな言語で実装する。 SICP の演習問題をいろいろな言語で解いてみる。 GoF のデザインパターンを、いろんな言語で・・・。 言語毎に独自な、もしくは共通の機能や特徴を掴む。 A knowledge database of programming langauge translat…

class Screen def outputToStdout(s) puts s end end class Printer def output(s) end end class PrinterScreenAdapter < Printer def initialize(screen) @screen = screen end def output(s) @screen.outputToStdout(s) end end screen = Screen.new adap…

class Screen { void outputToStdout(string s){ write(s); } } class Printer { void print(string s){ } } class PrinterScreenAdapter { inherit Printer; Screen screen; void create(Screen s) { screen = s; } void print(string s) { screen.outputTo…

import sys class Screen: def outputToStdout(self, s): sys.stdout.write(s) class Printer: def output(self, *args): raise NotImplementedError class PrinterScreenAdapter(Printer): def __init__(self, screen): self.__screen = screen def output(…

for my $i (0..$#ARGV) { printf("%d %s\n", $i, $ARGV[$i]); }

import sys def main(argv=sys.argv): for i range(len(argv)): print "%d %s" % (i, argv[i]) if __name__ == '__main__': sys.exit(main())

#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { size_t i; for (i = 0; i</stdlib.h></stdio.h>