2008-06-01から1ヶ月間の記事一覧
SICPの1.3.3 Procedures as General MethodsあたりをPythonでやってみた 1.3.3 Procedures as General Methods (一般的なメソッドの手順) Finding roots of equations by the half-interval method (平均化した半分間隔メソッドのルートを探し出す) sche…
Chapter 1 Building Abstractions with Procedures (抽象化を構築するやり方) The programs we use to conjure processes are like a sorcerer's spells. http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_chap_1 (一連の処理を呼び出すプ…
2ちゃんねるのLinux板の『Linuxerが好きなプログラミング言語教えれゴルァ』スレで行われてたアンケートをPythonで集計してみた(あくまでもこれくらい?な感じで)[スクリプト&集計結果を修正] 質問は3つ。 1. 常時使用する言語 2. 1とは別に好きな言…
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- utf8_str_li = ["あいうえお","かきくけこ"] sjis_str_li = [unicode(s, "utf8").encode("sjis") for s in utf8_str_li] print "「sjis文字列」(文字化けするはず)" print "\n".join(sjis_str_li) sjis…
anything.elがよいらしいとの記事を とあるブログで見つけて、Googleで調べてみたらわりと噂になってるらしい。 http://www.emacswiki.org/cgi-bin/wiki/Anythingとかで説明読んでもよく解らないので、とりあえず使ってみることにした。 とりあえず使ってみ…
SICPの1.3.2 Constructing Procedures Using LambdaあたりをPythonでやってみた scheme (define (square x)(* x x)) ;a (define (f x y) (define (f-helper a b) (+ (* x (square a)) (* y b) (* a b))) (f-helper (+ 1 (* x y)) (- 1 y))) (f 1 4) ;4 ;b (d…
SICPの練習問題 1.16をPythonでやってみた (schemeの解答はこちら:http://oss.timedia.co.jp/index.cgi/kahua-web/show/SICP/Answer%20Book) Exercise 1.16. Design a procedure that evolves an iterative exponentiation process that uses successive …
SICPの1.2.4 ExponentiationあたりをPythonでやってみた scheme (define (expt b n) (if (= n 0) 1 (* b (expt b (- n 1))))) (expt 2 4) ;16 ;iterative (define (expt b n) (expt-iter b n 1)) (define (expt-iter b counter product) (if (= counter 0) p…
駒の動かし方くらいしか知らないけど、急に将棋のアルゴリズムに興味湧いたのでPythonでやってみることにした。ググったら「うさぴょん 〜将棋を革命する力を〜」に将棋プログラムの作り方という丁度良いサイトがあったから、これで勉強してみる。 元が初め…
SICPの練習問題 1.12をPythonでやってみた (schemeの解答はこちら:http://oss.timedia.co.jp/index.cgi/kahua-web/show/SICP/Answer%20Book) Exercise 1.12. The following pattern of numbers is called Pascal's triangle (練習問題 1.12 パスカルの三…
SICPの練習問題 1.11をPythonでやってみた (schemeの解答はこちら:http://oss.timedia.co.jp/index.cgi/kahua-web/show/SICP/Answer%20Book) Exercise 1.11. A function f is defined by the rule that f(n) = n if n= 3. Write a procedure that compute…
SICP 1.2.2 Tree RecursionのCounting change を Python でやってみた def count_change(amount): return cc(amount, 5) def cc(amount, kinds_of_coins): if amount == 0: return 1 elif amount < 0 or kinds_of_coins == 0: return 0 return cc(amount, ki…
SICPで反復が理解できてなかったので、有名なお二人のブログでの例を利用してプロセスを視覚化してみた 参考サイト 関数型言語の勉強にSICPを読もう - (7) 1章 - 反復をマスターしたいけど・・・ - Higepon’s blog 404 Blog Not Found:Recursion vs. Iterati…
昨日発売だった。 519ページ、¥4,410とけっこうなボリューム。 早く読みたい(・∀・) 仕事やめたい(つдT)
1.2.2 Tree Recursionの Figure 1.5: The tree-recursive process generated in computing (fib 5).(図 1.5: 計算で生成された木構造再帰プロセス(fib5)) の図を自分的にわかりやすいようreturn(RETN)を追加してみた。 *1一応schemeのコードとプロセス(前…
SICP 1.2.2 Tree Recursion (木階層再帰?)のFigure 1.5のあたりを Pythonでやってみた 視覚的にプロセスがわかるよう、有名どころのここを参考にtraceを使ってみた。(slibはMacportsで簡単にインスコロールできた) Pythonでtraceみたいのできないのかな…
Structure and Interpretation of Computer Programs sec_1.1.8 #1.1.8 Procedures as Black-Box Abstractions(ブラックボックス抽象化の手続き) #Internal definitions and block structure(内在的な定義とブロック構造) #平方根の例 def square(x): re…
SICP 1.2 Procedures and the Processes They Generate(手続きと生成プロセス) ## 1.2.1 Linear Recursion and Iteration(線形の再帰と反復) # 図 1.3:再帰の例 def factorial(n): if n == 1: return 1 return n * factorial(n - 1) print factorial(6) …
Firefox3が正式リリースされたので、早速インスコして使用したらツールバーの表示がおかしい。 ナビゲーションツールバー、ブックマークツールバーともに。 (MacOSX 10.4, Power Mac G5)RSSフィードのあるページを見たりしてから、ツールバーまわりをクリ…
Exercise 1.8. Newton's method for cube roots is based on the fact that if y is an approximation to the cube root of x, then a better approximation is given by the value (練習 1.8 ニュートン法において立方根は、yがxの立方根の近似値だとした…
#1.1.7 Example: Square Roots by Newton's Method #(1.1.7 例:ニュートン法による平方根) def square(x): return x * x def sqrt_iter (guess, x): if good_enough(guess, x): return guess else: return sqrt_iter(improve(guess,x), x) def improve(gues…
SICP(和訳:計算機プログラムの構造と解釈)の1.1.6 Conditional Expressions and PredicatesのExercise 1.3.をPythonでやってみた (元はschemeの例題) #Exercise 1.3.Define a procedure that takes three numbers as arguments and returns the sum of …
macport でGaucheをインストールしようとしたらエラーがでたりしたのでメモ。 (会社のmacはすんなり入ったのに自宅のiBookではだめだった。なぜかしらん)とりあえあず以下のようなエラーがでた。 sudo port install gauche : ---> Fetching gdbm ---> Atte…
デタ━━━━(゚∀゚)━━━━ッ!!
Pythonに丁度良くタートルグラフィックスのモジュール『turtle』が標準で入ってるから『プログラマの数学』の第6章 再帰にでてきたタートルグラフィックスをpythonでやってみた。 #!/usr/bin/env python # *-# -*- coding: utf-8 -*- from turtle import* de…
あのNetscapeのオープンソース化にあたって多大なる影響を与えたエリック・レイモンド氏の書いたHow To Become A Hacker(和訳:ハッカーになろう)の中で、『コンピュータ言語の入門言語として最適』なものとして"Python"を進めていて、『二番目』に"Java"…
Carbon Emacs のM-x shellで起動したIPythonの補完がきかね(´・ω・`)ショボーン とか思ってたら、M-x termだとできた(・∀・) termってEmacs上で動くTerminal emulatorなのかしらん? ansi-termだと複数起動できるらしい。 In [1]: import random In [2]: random. #…
web site Elisp入門 優しい Emacs-Lisp 講座もくじ GNU Emacs Lispリファレンスマニュアル: book
少々わかりやすく書き換えてみた US配列キーボードの利点 キーの配列が使いやすい(個人的には右手小指まわりのキーあたり) カナ・英数キーがないので見た目すっきり。 かな入力しないのでキーのひらがな必要ない。 command + ` でウインドウ切り替えできる…
一昨日購入した『プログラマの数学』がなかなか面白いので、2進数の文字列を10進数の数値にするスクリプトをpythonで書いてみた(10進数の文字列を10進数の数値にも) #!/usr/bin/env python # *-# -*- coding: utf-8 -*- def bintodecnum(s, num = 2): slen…