読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

SICP 1.2 Procedures and the Processes They Generate

SICP 1.2 Procedures and the Processes They Generate - Exercise 1.10 (define (A x y) (cond ((= y 0) 0) ((= x 0) (* 2 y)) ((= y 1) 2) (else (A (- x 1) (A x (- y 1)))))) (A 1 10) (A (- 1 1) (A 1 (- 10 1))) (A 0 (A 1 9)) (A 0 (A (- 1 1) (A 1 (…

Index: Structure and Interpretation of Computer Programs (Python ver.)

SICP taught in Python 3 http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html Chapter 1: Building Abstractions with Functions 1.1 Introduction 1.1.1 Programming in Python 1.1.2 Installing Python 3 1.1.3 Interactive Sessions 1.1.4 F…

もくじ: 計算機プログラムの構造と解釈(Python版)

SICP taught in Python 3 http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html 第1章: 関数による抽象化を構築 1.1 イントロダクション 1.1.1 Pythonでプログラミング 1.1.2 Python3をインストール 1.1.3 対話型セッション 1.1.4 最初の例 1.1.5…

2.4 Multiple Representations for Abstract DataをPythonでやってみた

SICPの2.4 Multiple Representations for Abstract Data の 2.4.1 Representations for Complex Numbers あたりをPythonでやってみた scheme(original code) ;2.4 Multiple Representations for Abstract Data ;2.4.1 Representations for Complex Numbers (…

2.4.2 Tagged dataをPythonでやってみた

SICPの2.4.2 Tagged dataあたりをPythonでやってみた scheme(original code) ;2.4.2 Tagged data (define (attach-tag type-tag contents) (cons type-tag contents)) (define (type-tag datum) (if (pair? datum) (car datum) (error "Bad tagged datum -- …

2.3.4 Example: Huffman Encoding TreesをPythonでやってみた

SICPの2.3.4 Example: Huffman Encoding TreesあたりをPythonでやってみた scheme ;2.3.4 Example: Huffman Encoding Trees ;Representing Huffman trees (define (make-leaf symbol weight) (list 'leaf symbol weight)) (define (leaf? object) (eq? (car …

SICP 2.2.4 Example: A Picture LanguageをPythonでやってみたらデキタ━━━━(゚∀゚)━━━━ッ!!

SICPの2.2.4 Example: A Picture LanguageをPythonでやってみた...けどできなかったからPythonで絵を描いてみた(||゚Д゚) - 牌語備忘録 - pygoの続き。 やりました、Pythonで(゚Д゚)v python #2.2.4 Example: A Picture Language #The picture language #Painter…

2.3.3 Example: Representing SetsをPythonでやってみた

修正 SICPの 2.3.3 Example: Representing Sets あたりを Python でやってみた scheme (original code) Scheme(Gauche)でfalseとtrueを使うとエラーになるから、#fと#tに変えてやってみた ;2.3.3 Example: Representing Sets ;Sets as unordered lists (defi…

Scheme (Lisp) で car と cdr は知ってたけど cadr と caddrは見たこと無かった気がする(´・ω・`)

そいういえば SICPの 2.3.2 で出てきた cadr と caddr は見たこと無かった気がする。car と cdr は知ってたけど。見落としてただけかもしれないけど... とりあえずどこまで間に『d』を増やしても大丈夫なのかやってみた scheme (car '(0 1 2 3 4 5)) ;0 (cad…

2.3 Symbolic Data の 2.3.1 Quotation を Python でやってみた

SICPの2.3 Symbolic Data の 2.3.1 Quotation あたりを Python でやってみた scheme ;;;2.3 Symbolic Data ;;2.3.1 Quotation (define a 1) (define b 2) (list a b) (list 'a 'b) (list 'a b) (car '(a b c)) (cdr '(a b c)) ;(1 2) ;(a b) ;(a 2) ;a ;(b c…

2.3.2 Example: Symbolic Differentiation を Python でやってみた 〜表示は Scheme 風味で〜

SICPの 2.3.2 Example: Symbolic Differentiation の The differentiation program with abstract data あたりを Python でやってみた scheme ;2.3.2 Example: Symbolic Differentiation ;The differentiation program with abstract data (define (deriv ex…

2.2.4 Example: A Picture LanguageをPythonでやってみた...けどできなかったからPythonで絵を描いてみた(||゚Д゚)

2.2.4 Example: A Picture Language でグラフィック扱うから下準備してみた - 牌語備忘録 - pygoの続き SICPの元のコードもよく理解できなかったから、あの有名なhigepon氏のコードを一部参考というか勝手にお借りして、とりあえずschemeでやってみた。 参考…

2.2.4 Example: A Picture Language でグラフィック扱うから下準備してみた

2.2.4 Example: A Picture Language(例:絵柄言語?)やるのに絵柄表示のやり方を調べて下準備をしてみた。 参考サイト(大変お世話になりました) 関数型言語の勉強にSICPを読もう - (15) 2章 - 小休止 Gaucheで画面に絵を出そう(Gauche-gl) - Higepon’s b…

2.2.3 入れ子になった写像の順列からなる配列をPythonでやってみた...けどできなかった(´・ω・`)...と思ったらできた(・∀・)

SICPの2.2.3 Hierarchical Structures の Nested Mappings(入れ子になった写像)の the sequence of permutations of S - x(S-xの順列からなる配列)を Python でやってみた...けどきなかった(´・ω・`) ...と思ったらできた(・∀・) scheme 正常 ;Code used i…

2.2.3 Sequences as Conventional Interfaces の Sequence OperationsをPythonでやってみた

SICPの2.2.3 Sequences as Conventional Interfaces(慣習的な作用する配列) の Sequence Operations(配列操作) あたりを Python でやってみた scheme ;2.2.3 Sequences as Conventional Interfaces ;Sequence Operations (define (filter predicate sequ…

Scheme と cons と Python と

早くもSICPの2章でわけわからんと思ってたら、なんかSequenceの扱いを勘違いしてただけだったかも(||゚Д゚) scheme の cons や append と python の appendとか なので確認してみる。 scheme gosh> (cons (list 1 2 3 4 5) (list 1 2 3 4 5)) ((1 2 3 4 5) 1 …

三項演算子をPythonでやってみた

なんとなく知ってるような知らないような三項演算子を使ってPythonでやってみた 奇数か偶数か判定する関数 def odd_or_even(n): return "odd" if n % 2 else "even" print odd_or_even(1) #odd(奇数) print odd_or_even(100) #even(偶数) 結果 odd even …

2.2.2 Hierarchical StructuresをPythonでやってみた

SICPの2.2.2 Hierarchical Structures の Mapping over trees あたりを Python でやってみた scheme ;2.2.2 Hierarchical Structures ;Mapping over trees (define (scale-tree tree factor) (cond ((null? tree) ()) ((not (pair? tree)) (* tree factor)) …

2.2.1 Representing Sequencesの『map』あたりをPythonでやってみた

SICPの2.2.1 Representing Sequences の Mapping over lists あたりを Python でやってみた 普通に実行するとエラーでるので少し手を加えてやってみた。 scheme ;Mapping over lists ; ;実行すると nil でエラーになるから ;; gosh> *** ERROR: unbound vari…

EmacsでScheme (Gauche)を快適に使えるように設定してみた

便利になったとこ newline-and-indent 『(』もしくは『"』を入力すると自動で閉じる \C-c\C-zで別のウインドウからインタプリタ起動(Pythonと同じにした) 以下サイトを参考にさせていただいた http://karetta.jp/book-node/gauche-hacks/004640 http://kar…

2.2.1 Representing SequencesをPythonでやってみた

SICPの2.2 Hierarchical Data and the Closure Propertyの2.2.1 Representing Sequences あたりをPythonでやってみた ;2.2 Hierarchical Data and the Closure Property ;2.2.1 Representing Sequences (define one-through-four (list 1 2 3 4)) (car one-t…

2.1.1 Example: Arithmetic Operations for Rational NumbersをPythonでやってみた

SICPの2.1.1 Example: Arithmetic Operations for Rational NumbersあたりをPythonでやってみた scheme (define (add-rat x y) (make-rat (+ (* (numer x) (denom y)) (* (numer y) (denom x))) (* (denom x) (denom y)))) (define (sub-rat x y) (make-rat …

SICP 1.3.3 Procedures as General MethodsをPythonでやってみた

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…

SICP 第1章の要点を簡単にまとめてみた 〜『プログラムは魔法と似ている』〜

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 (一連の処理を呼び出すプ…

SICP 1.3.2 Constructing Procedures Using LambdaをPythonでやってみた

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でやってみた

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でやってみた

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…

SICPの練習問題 1.12を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でやってみた

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 の Example: Counting change を Python でやってみた

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で反復が理解できてなかったので、有名なお二人のブログでの例を利用してプロセスを視覚化してみた 参考サイト 関数型言語の勉強にSICPを読もう - (7) 1章 - 反復をマスターしたいけど・・・ - Higepon’s blog 404 Blog Not Found:Recursion vs. Iterati…

SICP 1.2.2 Tree Recursion の木構造再帰プロセスの図にreturnをいれてみた

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 を Pythonでやってみた

SICP 1.2.2 Tree Recursion (木階層再帰?)のFigure 1.5のあたりを Pythonでやってみた 視覚的にプロセスがわかるよう、有名どころのここを参考にtraceを使ってみた。(slibはMacportsで簡単にインスコロールできた) Pythonでtraceみたいのできないのかな…

SICP 1.1.8 ブラックボックス抽象化の手続きの平方根の例をPythonでやってみた

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.1 再帰と反復の練習問題1.9をPythonでやってみた

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) …

SICP Exercise 1.8. ニュートン法による立方根(三乗根)をPythonでやってみた

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の立方根の近似値だとした…

SICP 1.1.7 例:ニュートン法による平方根をPythonでやってみた

#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のExercise 1.3.をPythonでやってみた

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 …

SICPを読んでいたら練習問題を試したくなったのでGaucheをインストールしてみたらエラーでた

macport でGaucheをインストールしようとしたらエラーがでたりしたのでメモ。 (会社のmacはすんなり入ったのに自宅のiBookではだめだった。なぜかしらん)とりあえあず以下のようなエラーがでた。 sudo port install gauche : ---> Fetching gdbm ---> Atte…