2009/05/13

[scheme][win]Scheme開発環境まとめ

Scheme 処理系のいろいろ。

本命

やはり本命は Emacs ですね。GaucheBox だとインストーラーで簡単に環境が整備されます。Emacsを使ったことが無いとキーバインドに慣れるまでに時間がかかるかもしれません。
評価、実行、S式間の移動などが素早く行えます。

WS0745

IDE


ステップデバッグが可能です。プログラミング初心者、Scheme 初心者、Emacs が苦手な人、Visual Studio に慣れてる人は Emacs よりこちらの方が良いかもしれません。

WS0778

.NET

.NET。C# で実装されているそうです。
VS2008 にアドインを導入するすることで Visual Studio でも使えるようになるようです。
詳しくはこちら
ironscheme.combination2

JAVA

WS0777

モバイル

pscmppc5

携帯

10120688477_thumb


Schemeによる記号処理入門

[Lisp][Book]"Practical Common Lisp"が無料で読める?

WS0774

ネタ元:

 

URL:

 

その他:

[Book][Site]Webで読める名著にも追加しておいた。

 

目次:

 

  1. Introduction: Why Lisp?
  2. Lather, Rinse, Repeat: A Tour of the REPL
  3. Practical: A Simple Database
  4. Syntax and Semantics
  5. Functions
  6. Variables
  7. Macros: Standard Control Constructs
  8. Macros: Defining Your Own
  9. Practical: Building a Unit Test Framework
  10. Numbers, Characters, and Strings
  11. Collections
  12. They Called It LISP for a Reason: List Processing
  13. Beyond Lists: Other Uses for Cons Cells
  14. Files and File I/O
  15. Practical: A Portable Pathname Library
  16. Object Reorientation: Generic Functions
  17. Object Reorientation: Classes
  18. A Few FORMAT Recipes
  19. Beyond Exception Handling: Conditions and Restarts
  20. The Special Operators
  21. Programming in the Large: Packages and Symbols
  22. LOOP for Black Belts
  23. Practical: A Spam Filter
  24. Practical: Parsing Binary Files
  25. Practical: An ID3 Parser
  26. Practical: Web Programming with AllegroServe
  27. Practical: An MP3 Database
  28. Practical: A Shoutcast Server
  29. Practical: An MP3 Browser
  30. Practical: An HTML Generation Library, the Interpreter
  31. Practical: An HTML Generation Library, the Compiler
  32. Conclusion: What's Next?

 

邦訳版目次:

第1章 序論:なぜLispなのか?
第2章 お気の済むまで:REPLツアー
第3章 実践:簡単なデータベース
第4章 シンタックスとセマンティクス
第5章 関数
第6章 変数
第7章 マクロ:標準的な制御構文の構築
第8章 マクロ:自分で定義しよう
第9章 実践:ユニットテストフレームワーク
第10章 数字、文字、そして文字列
第11章 コレクション
第12章 リスト処理:やつらがLISPと呼ぶ理由
第13章 リストを越えて:コンスセルの別用途
第14章 ファイルとファイルI/O
第15章 実践:パスネーム可搬ライブラリ
第16章 オブジェクト指向再入門:総称関数
第17章 オブジェクト指向再入門:クラス
第18章 FORMATの手習い
第19章 例外処理を越えて:コンディションと再起動
第20章 特殊オペレータ
第21章 大規模なプログラミング:パッケージとシンボル
第22章 黒帯のためのLOOP
第23章 実践:スパムフィルタ
第24章 実践:バイナリファイルのパース
第25章 実践:ID3パーサ
第26章 実践:AllegroServeでWebプログラミング
第27章 実践:MP3データベース
第28章 実践:Shoutcastサーバ
第29章 実践:MP3ブラウザ
第30章 実践:HTML生成ライブラリ ― インタプリタ版
第31章 実践:HTML生成ライブラリ ― コンパイラ版
第32章 結論:さて次は?

 

実践Common Lisp
実践Common Lisp
posted with amazlet at 09.05.13
Peter Seibel
オーム社
売り上げランキング: 157251
おすすめ度の平均: 4.0
5 意外とハイレベル
3 実作業でLispを使う

[Scheme][Hanoi]ハノイの塔:Tower of Hanoi

WS0773

ハノイの塔は随分前にC#でやったことあったけどもう忘れた。これ言うほど簡単じゃなくね?というのが本心です。
Web上には「ハノイの塔」の手続き中で出力処理(Printとか)を行ってるものが多いけど、それってどうなの。やはりこういうのよりよはこっちが好み。

Tower of Hanoi - ハノイの塔
(define (hanoi n from to using)
    (cond
         ((zero? n) '())
         (else (append
                    (hanoi (- n 1) from using to)
                     (list (cons from to))
                     (hanoi (- n 1) using to from)))))

(hanoi 3 '1 '2 '3)
;; => ((3 . 1) (3 . 2) (1 . 2) (3 . 1) (2 . 3) (2 . 1) (3 . 1))

(hanoi 3 'a 'b 'c)
;; => ((a . b) (a . c) (b . c) (a . b) (c . a) (c . b) (a . b))

(hanoi 5 'c 'a 'b)
;; => ((c . a) (c . b) (a . b) (c . a) (b . c) (b . a) (c . a) (c . b) (a . b) (a . c) (b . c) (a . b) (c . a) (c . b) (a . b) (c . a) (b . c) (b . a) (c . a) (b . c) (a . b) (a . c) (b . c) (b . a) (c . a) (c . b) (a . b) (c . a) (b . c) (b . a) (c . a))


The Little Schemer, 4th Edition 計算論 計算可能性とラムダ計算 (コンピュータサイエンス大学講座)計算機プログラムの構造と解釈プログラミングGauche

2009/05/12

[blogger][hatena]はてなスターと被ブックマーク数(users)をBloggerの記事タイトルに追加

WS0771

WS0772

 

なんというか、こんなブログでもブックマークされたりすることを知ったために、表示できるようにしてみました。(w

[Twitter]自分はいつツイッターを始めたのか?

WS0765

WS0766

 

私はどうやら2007/03/14にTwitterを始めたらしいですね。

2年前のホワイトデー・・・私は何をしていたのでしょうか?

 

I joined twitter on 14 May 2007 - http://whendidyoujointwitter.com ?
I joined twitter 729 days ago - http://whendidyoujointwitter.com ?

 

ネタ元:

[PostScript]資料

iratqqさん

@valvallow さあPSを手書きする作業に戻るんだ。

ということだったので、せっかくなので本当に書いてみることにしてみる。と、その前にこの辺が参考になるかなーというところをメモ。

 

インストールはここ

見当違いかもしれませんが・・・・

[scheme]stack(大域変数+副作用)

思い切ったstack。

 

Schemeによる記号処理入門」P.39 ~ 40

(define *stack*i
  '())

 

(define push
  (lambda (data)
    (cond
     ((null? *stack*)
      (set! *stack* (list data)))
     (else (set! *stack* (cons data *stack*))))
    *stack*))

 

(define pop
  (lambda ()
    (cond
     ((null? *stack*) 'empty)
     (else ((lambda (x)
              (set! x (car *stack*))
              (set! *stack* (cdr *stack*))
              x)
            '())))))

(push 'one)
(push 'two)
(pop)
(pop)
(pop)


;;処理結果

gosh> *stack*
gosh> push
gosh> pop
gosh> (one)
gosh> (two one)
gosh> two
gosh> one
gosh> empty
gosh>

 

Schemeによる記号処理入門

Schemeによる記号処理入門

posted with amazlet at 09.05.10

猪股 俊光 益崎 真治
森北出版
売り上げランキング: 305671

Amazon.co.jp で詳細を見る

2009/05/11

[bat]今日の日付取得

Set today = %date:/=%

Windows DOS/コマンドプロンプト辞典

[Sql][bat]bcpでSelect文を実行する

データベースDbNameのHogeTableをSelectした結果をlogファイルに吐きます。userは、まぁsaとか、****は実際のパスワードに変えて実行するとOK。

bcp "USE DbName Select * From HogeTable" queryout "c:\select.log" -t "," -c -U user -P ****

osqlの方が一般的ですね。
@osql -Uuser -P**** -Sservername -ddbname -q "SELECT * FROM HogeTable"


[bat]ネットワーク内の使用されているIPアドレスを調べる

片っ端からpingします。たぶんもっと良い方法があるんでしょうけどね。
この場合、192.168.1.0 ~ 192.168.1.254までpingしてそのログを吐きます。

片っ端ping.bat
for /l %%a in (0,1,255) do (ping -a -n 1 -w 1 192.168.1.%%a | find "Pinging") >> ping.log
notepad ping.log
goto :EOF


Windows DOS/コマンドプロンプト辞典マスタリングTCP/IP 入門編 第4版