2011-10-01から1ヶ月間の記事一覧

第17の戒律 技術調査記4

前回までは、高階関数の話をしていましたが、 なぜ、クロージャーの値が保存されることになるのか見てみたいと思います。 まずは、globberをの中にあるletを分解してlambdaに戻します。 (define gobbler ((lambda (x) (lambda (food) (set! x food) (cons fo…

コマンドラインパスワードをかっこよく表示したい

パスワードの確認のための表示したい。でも、全部表示するのは、セキュリティ上よろしくない。 そんな時のために、sedとawkとshで、おしゃれな表示にしてみる。 yokotasoをパスワード表示のときに、yo******みたいな表示できたらいいなと。 まずは、実験して…

MySQLのバージョン番号だけ取り出す

MySQLのバージョン番号だけ取り出したい誰得な需要があったので… MySQLのバージョンを取り出す MySQLには、いくつかバージョンを取り出す方法があります。 mysqlのオプションを使う mysqlのワンライナーを使う #その1 mysql --version #mysql Ver 14.14 Dis…

FibBuzz

面白そうな問題があったのでやってみた。 1から100の数に対して、フィボナッチ数ならFibを、5で割り切れるならBuzz、両方は、FizzBuzz (use srfi-1) (define (fib? n) (letrec ((fib (lambda(fn-1 fn-2) (let ((fn (+ fn-1 fn-2))) (cond [(= n fn-1) #t] [(…

shellスクリプトTips

コマンドの出力を受け取る #dir=`pwd`は古い…らしい dir=$(pwd) #値を変えたいとき(必ず、現在位置) dir="$(pwd)" # 〃 くないとき(実行時のパスが保存) ファイル探索⇒ソート⇒最初のファイルバス 01.sh,02.sh,03.shみたいな名前で、最新の処理を走らせた…

第17の戒律 技術調査記3

高階関数 公開関数というのは、戻り値を関数にする関数のことです。 x,yを引数とするaddを定義します。xの値だけ固定したadd3を定義します。 これによって、add3は、引数に3を加える関数を返す関数になります。 (define add (lambda(x) (lambda(y) (+ x y)))…

第17の戒律 技術調査記1

scheme修行を読んでいて、わからないことがあったので、調査。 ちょっと、現状を整理してみます。 第17の戒律(予備版) (let ( (x ...)) ...)に対して(set! x ...)を用いる際には、それらの間に少なくとも1つの(lambda ...を置くべし。 set!の使用時に、名…

第17の戒律 技術調査記2

A:それで、(let...)は、約にたちましたか? B:まったく。(let...)と(set!...)は、その間に(lambda...を入れないで使っても 何かを覚える役には役立ちません。 この一文がまったく理解できないので、過去に引数で与えられた食べ物を記憶しておく関数を作りま…