#3.2 評価の環境モデル
第1章で合成手続きを導入した時は、引数に手続きを適用するとはどういうことなのか定義するために、 置き換えモデルを使った(1.1.5)。 つまり、
- 合成手続きに引数を適用するとは、「仮パラメータをそれぞれ対応した引数に置き換えた上で、 手続きの本体を評価する」
ということである。
#include <cstdlib> | |
#include <cstdio> | |
#include <stdint.h> | |
void func(bool a) | |
{ | |
if (a) { | |
puts("true"); | |
} else { | |
puts("false"); |
array = [1...10] | |
result = ( (item + 1) for item in (item for item in array when item % 2 is 0) when item < 10) |
* { | |
-webkit-user-select: none; | |
-khtml-user-select: none; | |
-moz-user-select: none; | |
} |
std::string removeExtension(const std::string& fileName) | |
{ | |
std::string r = fileName; | |
const size_t dotIndex = r.rfind("."); | |
if (dotIndex == std::string::npos) { | |
return fileName; | |
} | |
std::string::const_iterator it = r.begin() + dotIndex; |
value = 1 | |
def function | |
p value | |
end | |
function |
;d. waveペインタ | |
(define (wave-painter frame) | |
(define vect1 (edge1 frame)) | |
(define vect2 (edge2 frame)) | |
(define z (make-vect 0 0)) | |
(define (make-draw-point-vector vect1 vect2 magnitude-vect1 magnitude-vect2) | |
(add-vect (scale-vect vect1 magnitude-vect1) | |
(scale-vect vect2 magnitude-vect2))) | |
(let ((p1 (make-draw-point-vector z vect2 0 0.33)) ; 右足の先 | |
(p2 (make-draw-point-vector vect1 vect2 0.5 0.35)) ; 右足の付け根 |
(define put-lists '()) | |
(define (clear-putlist) | |
(set! put-lists '())) | |
(define (put op type item) | |
(if (get op type) put-lists | |
(set! put-lists (cons (list op type item) put-lists)))) ; setっての使えばやりたいことできそう | |
(define (get op type) |
(define coercion-list '()) | |
(define (clear-coercion-list) | |
(set! coercion-list '())) | |
(define (put-coercion type1 type2 item) | |
(if (get-coercion type1 type2) coercion-list | |
(set! coercion-list | |
(cons (list type1 type2 item) | |
coercion-list)))) |
#3.2 評価の環境モデル
第1章で合成手続きを導入した時は、引数に手続きを適用するとはどういうことなのか定義するために、 置き換えモデルを使った(1.1.5)。 つまり、
ということである。
#!/usr/bin/env sh | |
# | |
# you need sox http://sox.sourceforge.net/ | |
# and copy char2mozzi.py | |
wavfiles="*.wav" | |
for wavfile in ${wavfiles} | |
do | |
sox ${wavfile} -r 16384 -b 8 -e signed-integer ${wavfile%.wav}.raw | |
done |