牌語備忘録 -pygo

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

牌語備忘録 -pygo

SICP

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…