gaucheノート

gaucheでOracleにアクセスする

2019年 ・oracleのサイトから、以下のOracle Instant Clientのファイルをダウンロードする - instantclient-basic-linux.x64-11.2.0.4.0.zip - instantclient-sdk-linux.x64-11.2.0.4.0.zip・/optに展開する # cd /opt # unzip instantclient-basic-linux.x6…

kindleでないのでsony reader買いました

http://ebook.itmedia.co.jp/ebook/articles/1209/03/news025_2.html 中央図/画面の回転+横幅フィットをすると、左に90度回転した状態になる。右図/元へ戻す場合はページモードではなく、メニューの[その他]から[画面の回転] ?なぜ (;´Д`) http://j…

xargs

きっとみんな大好きxargs いまさらxargsの便利さを主張してみる http://openlab.dino.co.jp/2008/02/20/133431188.html xargs - 知らないと損する大変便利なコマンド http://www.syboos.jp/linux/doc/xargs-command.html gaucheで書いてみる myxargs.scm (us…

gaucheノート  ディレクトリをたどる

[tigerii@fedora ~]$ rlwrap gosh gosh> (use file.util) #<undef> gosh> (define (myfind path) (cond ( (not (file-exists? path)) (print path " not found.")) ((file-is-directory? path) (print path) (for-each myfind (directory-list path :add-path? #t :</undef>…

gaucheノート  URLエンコード

wikipedia:URLエンコードgaucheで書く [tigerii@fedora ~]$ rlwrap gosh gosh> (use gauche.charconv) #<undef> gosh> (define (my-url-encode string from-code to-code) (let ((p (open-input-conversion-port (open-input-string string) from-code :to-code to-</undef>…

gaucheノート  名前付きlet(named let)

末尾再帰で階乗を計算する関数 gosh> (define (fact-tailrec n acc) (if (= n 1) acc (fact-tailrec (- n 1) (* n acc)))) fact-tailrec gosh> (fact-tailrec 5 1) 120 letを使用して局所的な関数を定義することができ、これで末尾再帰がかけるようです。let…

gaucheノート  末尾再帰(tail recursion)

階乗を計算する関数 gosh> (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) fact gosh> (fact 10) 3628800 末尾(tail)に呼び出す(call)手続きが、乗算(→(* n (fact (- n 1))))のため、末尾再帰ではない 末尾再起で階乗を計算する関数 gosh> (define …

URLエンコード

wikipedia:URLエンコード URIにASCIIの非予約文字以外の文字データを用いる場合には、「%xx」(xxは16進数)という形でコードを表記することが定められている。... たとえば「ウィキペディア」を、各種の文字コードを用いてURLエンコードすると以下のように…

gaucheノート  list-ec

$ gosh gosh> (use srfi-42) #<undef> gosh> (list-ec (: i 5) i) (0 1 2 3 4) gosh> (list-ec (: i 1 5) i) (1 2 3 4) gosh> (list-ec (: i 1 6) i) (1 2 3 4 5) gosh> (define (square n) (* n n)) square gosh> (map square (list-ec (: i 10) (+ i 1)) ) (1 4 9</undef>…

gaucheノート  log 対数

gosh> (define (log10 n) (/ (log n) (log 10))) log10 gosh> (log10 10) 1.0 gosh> (log10 100) 2.0 gosh> (log10 1000) 2.9999999999999996 むむ? gosh> (define (power x n) (if (= n 1) x (* x (power x (- n 1))) ) ) power gosh> (power 2 2) 4 gosh>…

gaucheノート  rlwrap

rlwrapを使うとコマンドの再利用ができるよ $ rlwrap gosh gosh> (define x '(a b c)) x gosh> (define x '(a b c)) ... '↑' か [Ctrl]+p で直前に実行したコマンドが表示される 参照したURL: http://www.atmarkit.co.jp/fcoding/articles/gauche/02/gauche0…

gaucheノート

REPLの起動 $ gosh gosh> REPLの終了 gosh> (exit) gosh> (define list (list "a" "b" "c")) list gosh> list ("a" "b" "c") gosh> gosh> (define (square n) (* n n)) square gosh> (square 2) 4 gosh> (square 25) 625 gosh> pi *** ERROR: unbound variab…