2010年7月27日火曜日

Lisp

Lispの勉強を始める。細かくはscheme by gauche。

湯浅太一 著 『Scheme入門』 岩波書店

を差し当りの参考に。しかしこの本の前半部については、「魔法言語 リリカル☆Lisp」の方が分かりやすかったように思う。これを一通り読めたらSCIPに挑戦してみたい。

2010年2月27日土曜日

多次元配列を関数に渡す

メモリは一次元なので、多次元配列をそのまま格納することはできない。
サイズの分かっている配列ならば、以下のようにできる。

int func(int (*array)[]) ;
int main()
{
    int array[2][3] ;

    ...

    func(array) ;

    ...

}

int func(int (*array)[])
{
    ...
}

main関数内でサイズを決定するような場合は、一旦一次元化するしかなさそうだ。


int func(int *array, int N, int M) ;
int main()
{
    int i,j ;

    int N = 2 ;
    int M = 3 ;

    int array[N][M] ;

    ...

    int align_array[N*M] ;

    for(i=0; i
        for(j=0; j
            align_array[N*i +j] =array[i][j] ;

    func(array) ;

    for(i=0; i
        for(j=0; j
            array[i][j] =align_array[N*i +j] ;

    ...

    }

int func(int *array, int N, int M)
{
    int array[N][M] ;

    for(i=0; i
        for(j=0; j
            array[i][j] =align_array[N*i +j] ;
    ...

    for(i=0; i
        for(j=0; j
            align_array[N*i +j] =array[i][j] ;

    ...

}

2010年2月21日日曜日

Cスタイル

昨年の半ばまでC++の命令を用いてスクリプトを書いていたが、その流れはC言語スタイル、しかも洗練されてないごちゃごちゃスタイル…

というわけで「Cらしい」記述を目指す。

TeXも然り