つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
|
|
- やすもり かやぬま
- 5 years ago
- Views:
Transcription
1
2 Ruby Scheme
3 ( )! SICP *1 ;-) SchemeR SICP MIT * 1 Structure and Interpretaion of Computer Programs 2nd ed.: 2 i
4 SchemeR Ruby Ruby Ruby Ruby & 3.0 Ruby ii
5 3.0 ( licenses/by/3.0/deed.ja) iii
6 i let (eval) (apply) ? for? cond quote REPL iv
7 Scheme in SchemeR SICP v
8 1 1.1 *1 Ruby 1.2 [:+, 1, 2] SchemeR( ) * 1 (operetional semantics) 1
9 :+ 2 [:+, [:+, 1, 2], 3] [:+, 1, 2] 3 2 :+ (evaluation) :+ 2 : SchemeR SchemeR [:+, 1, 2] x + y * z (x + y) * z x + (y * z) if [:if, :true, 1, 0] [ :if if (true) then 1 else 2; x = y + 1; ( / ) ( ), [ ] Ruby + x if : :+ :x :if Ruby Ruby _eval *2 exp * 2 eval _eval Ruby eval Ruby module _eval eval 4 parse eval Kernel::eval 2
10 1 1.2 (apply) _eval *3 2 2 (Ruby ) def _eval(exp) if not list?(exp) if immediate_val?(exp) exp else lookup_primitive_fun(exp) else fun = _eval(car(exp)) args = eval_list(cdr(exp)) apply(fun, args) 2 2? 2 ( SchemeR) 2 (Ruby ) Ruby def list?(exp) exp.is_a?(array) Ruby def lookup_primitive_fun(exp) $primitive_fun_env[exp] $primitive_fun_env = { :+ => [:prim, lambda{ x, y x + y}], * 3 Ruby return < > 3
11 1 1.2 } :- => [:prim, lambda{ x, y x - y}], :* => [:prim, lambda{ x, y x * y}], car cdr *4 Scheme def car(list) list[0] def cdr(list) list[1..-1] eval_list def eval_list(exp) exp.map{ e _eval(e)} def immediate_val?(exp) num?(exp) def num?(exp) exp.is_a?(numeric) (Ruby ) (Ruby ) fun_val.call(*args) fun_val Ruby args * args [1, 2] fun_val.call(1, 2) args [1, 2, 3] fun_val.call(1, 2, 3) def apply(fun, args) apply_primitive_fun(fun, args) def apply_primitive_fun(fun, args) fun_val = fun[1] fun_val.call(*args) [:+, 1, 2] 1.1 :+ lambda{ x, y x + y} * 4 car Contents of the Address part of Register cdr Contents of the Decrement part of Register cons CONStruct Lisp IBM 4
12 1 1.3 (Ruby ) 1, 2 (Ruby )1, 2 (Ruby ) 3 puts Ruby *5 1.1 SchemeR Ruby puts _eval([:+, 1, 2]) 3 [:+, [:+, 1, 2], 3] _eval 1.3 ( ) ( Ruby ) * 5 SchemeR 5
13 1 1.3 x = y; 6
14 2 :+ 2 [[:lambda, [:x, :y], [:+, :x, :y]], 3, 2] Ruby def add(x, y) x + y add(3, 2) 3 2 [:lambda, parameters, body ] parameters body :+ 3, 2 x, y 2.1 [[:lambda, [:x], [:+, [[:lambda, [:x], :x], 2], :x]], 1] 7
15 2 2.1 :lambda :x 1 :+ :+ 3 :lambda :x :x :x 1 :x ( 2.1) 2.1 x : :x 1 :x 1 ( ) (bind variable to value) Ruby h = {x:1} 1 x 1 x h[:x] SchemeR :x 1 :x :y [[:lambda, [:x], [:+, [[:lambda, [:y], :y], 2], :x]], 1] 3 8
16 2 2.1 :x 1 4 :lambda :x :lambda :x :lambda :x 2 :x 1 :lambda :x 1 :lambda :x 2 :x 1 ( 2.2 *1 ) 2.2 {x:1, y:2} x 1 y 2 [{x:1, y:2}, {x:3}] :lambda [{x:1}] :lambda [{x:2}, {x:1}] :lambda [{x:1}] Ruby lookup_var def lookup_var(var, env) alist = env.find{ alist alist.key?(var)} if alist == nil raise "couldn't find value to variables:'#{var}'" alist[var] * 1 {x:1} 9
17 2 2.2 let def ext_env(parameters, args, env) alist = parameters.zip(args) h = Hash.new alist.each { k, v h[k] = v } [h] + env 2.2 let let [:let, [[:x, 3], [:y, 2]], [:+, :x, :y]] :x 3 :y 2 [:+, :x, :y] let let [[:lambda, [:x, :y], [:+, :x, :y]], 3, 2] let def eval_let(exp, env) parameters, args, body = let_to_parameters_args_body(exp) new_exp = [[:lambda, parameters, body]] + args _eval(new_exp, env) let def let_to_parameters_args_body(exp) [exp[1].map{ e e[0]}, exp[1].map{ e e[1]}, exp[2]] let def let?(exp) exp[0] == :let 2.3 let 10
18 2 2.3 [:let, [[:x, 2]], [:let, [[:fun, [:lambda, [], :x]]], [:let, [[:x, 1]], [:fun]]]] let :x 2 :fun :x :x 1 :fun :x :fun ( :x 1 ) ( :x 2 ) (!) 2 *2 2 ([lambda() x, [{x:2}]]) :fun :x 1 [{x:1}, {x:2}] :fun [{x:2}] x 2 ( ) Ruby def eval_lambda(exp, env) make_closure(exp, env) def make_closure(exp, env) parameters, body = exp[1], exp[2] [:closure, parameters, body, env] def lambda_apply(closure, args) parameters, body, env = closure_to_parameters_body_env(closure) new_env = ext_env(parameters, args, env) _eval(body, new_env) *
19 2 2.3 def closure_to_parameters_body_env(closure) [closure[1], closure[2], closure[3]] _eval let apply def _eval(exp, env) if not list?(exp) if immediate_val?(exp) exp else lookup_var(exp, env) else if special_form?(exp) eval_special_form(exp, env) else fun = _eval(car(exp), env) args = eval_list(cdr(exp), env) apply(fun, args) def special_form?(exp) lambda?(exp) or let?(exp) def lambda?(exp) exp[0] == :lambda def eval_special_form(exp, env) if lambda?(exp) eval_lambda(exp, env) elsif let?(exp) eval_let(exp, env) def eval_list(exp, env) exp.map{ e _eval(e, env)} def apply(fun, args) if primitive_fun?(fun) apply_primitive_fun(fun, args) else lambda_apply(fun, args) 12
20 2 2.4 (eval) (apply) def primitive_fun?(exp) exp[0] == :prim lookup_var $global_env = [$primitive_fun_env] exp = [[:lambda, [:x, :y], [:+, :x, :y]], 3, 2] puts _eval(exp, $global_env) [:let, [[:x, 3]], [:let, [[:fun, [:lambda, [:y], [:+, :x, :y]]]], [:+, [:fun, 1], [:fun, 2]]]] :fun :x *3 2.4 (eval) (apply) (eval) (apply) 2.5 ( ) FORTRAN *
21 2 2.6 *4 2.6 * 4 14
22 3 [:letrec, [[:fact, [:lambda, [:n], [:if, [:<, :n, 1], 1, [:*, :n, [:fact, [:-, :n, 1]]]]]]], [:fact, 3]] SchemeR 3.1 if [:if, [:>, 3, 2], 1, 0] if if : if? if special form x 1 set! ( 5 ) x 4 [:if, :false, [:set!, :x, [:+, :x, 1], [:set!, :x, [:+, :x, 2]] if ( letrec ) 15
23 3 3.1 def special_form?(exp) lambda?(exp) or let?(exp) or letrec?(exp) or if?(exp) def eval_special_form(exp, env) if lambda?(exp) eval_lambda(exp, env) elsif let?(exp) eval_let(exp, env) elsif letrec?(exp) eval_letrec(exp, env) elsif if?(exp) eval_if(exp, env) def eval_if(exp, env) cond, true_clause, false_clause = if_to_cond_true_false(exp) if _eval(cond, env) _eval(true_clause, env) else _eval(false_clause, env) def if_to_cond_true_false(exp) [exp[1], exp[2], exp[3]] def if?(exp) exp[0] == :if if :true, :false (Ruby )true, false $boolean_env = {:true => true, :false => false} $global_env = [$primitive_fun_env, $boolean_env] $primitive_fun_env = { :+ => [:prim, lambda{ x, y x + y}], :- => [:prim, lambda{ x, y x - y}], :* => [:prim, lambda{ x, y x * y}], :> => [:prim, lambda{ x, y x > y}], :>= => [:prim, lambda{ x, y x >= y}], :< => [:prim, lambda{ x, y x < y}], 16
24 3 3.2 :<= => [:prim, lambda{ x, y x <= y}], :== => [:prim, lambda{ x, y x == y}], } $global_env = [$primitive_fun_env, $boolean_env] 3.2 [:let, [[:fact, [:lambda, [:n], [:if, [:<, :n, 1], 1, [:*, :n, [:fact, [:-, :n, 1]]]]]]], [:fact, 0]] 1 [:let, [[:fact, [:lambda, [:n], [:if, [:<, :n, 1], 1, [:*, :n, [:fact, [:-, :n, 1]]]]]]], [:fact, 1]] :let :fact :fact [:fact 1] if :fact :fact ( 3.1) let 3.1 [:fact 1] fact fact [:fact 1] fact :lambda :fact :fact :fact ( :fact) ( 3.2(a)) 17
25 3 3.2 ( 3.2(b)) letrec [:fact, 1] ( 3.2(c)) :fact 3.2 (a) fact dummy (b) fact (c)[:fact 1] fact letrec def eval_letrec(exp, env) parameters, args, body = letrec_to_parameters_args_body(exp) tmp_env = Hash.new parameters.each do parameter tmp_env[parameter] = :dummy ext_env = ext_env(tmp_env.keys(), tmp_env.values(), env) args_val = eval_list(args, ext_env) set_ext_env!(parameters, args_val, ext_env) new_exp = [[:lambda, parameters, body]] + args _eval(new_exp, ext_env) def set_ext_env!(parameters, args_val, ext_env) parameters.zip(args_val).each do parameter, arg_val ext_env[0][parameter] = arg_val 18
26 3 3.3? def letrec_to_parameters_args_body(exp) let_to_parameters_args_body(exp) def letrec?(exp) exp[0] == :letrec exp = [:letrec, [[:fact, [:lambda, [:n], [:if, [:<, :n, 1], 1, [:*, :n, [:fact, [:-, :n, 1]]]]]]], [:fact, 3]] puts _eval(exp, $global_env) 6 3.3? (pure functional language) Ruby set_ext_env! *1 let (Ruby let ) * 1! quote Scheme! 19
27 3 3.4 for? 3.4 for? for eval_let eval fact ( length ) 3.5 SchemeR 20
28 4 4.1 *1 Scheme Ruby null? :nil def null?(list) list == [] $list_env = { :nil => [], :null? => [:prim, lambda{ list null?(list)}], :cons => [:prim, lambda{ a, b cons(a, b)}], :car => [:prim, lambda{ list car(list)}], :cdr => [:prim, lambda{ list cdr(list)}], :list => [:prim, lambda{ *list list(*list)}], } $global_env = [$list_env, $primitive_fun_env, $boolean_env] cons def cons(a, b) if not list?(b) * 1 Scheme Lisp List Processing 21
29 4 4.2 raise "sorry, we haven't implemented yet..." else [a] + b ( )car cdr def car(list) list[0] def cdr(list) list[1..-1] list Ruby def list(*list) list 4.2 [:define, :id, [:lambda, [:x], :x]] :id [:id, 3] 3 [:define, [:id, :x], :x] (! ) 22
30 4 4.2 def eval_define(exp, env) if define_with_parameter?(exp) var, val = define_with_parameter_var_val(exp) else var, val = define_var_val(exp) var_ref = lookup_var_ref(var, env) if var_ref!= nil var_ref[var] = _eval(val, env) else ext_env!([var], [_eval(val, env)], env) nil def ext_env!(parameters, args, env) alist = parameters.zip(args) h = Hash.new alist.each { k, v h[k] = v } env.unshift(h) def define_with_parameter?(exp) list?(exp[1]) def define_with_parameter_var_val(exp) var = car(exp[1]) parameters, body = cdr(exp[1]), exp[2] val = [:lambda, parameters, body] [var, val] def define_var_val(exp) [exp[1], exp[2]] def lookup_var_ref(var, env) env.find{ alist alist.key?(var)} def define?(exp) exp[0] == :define *2 [:define, [:length, :list], [:if, [:null?, :list], 0, [:+, [:length, [:cdr, :list]], 1]]] * special_form? eval_special_form 23
31 4 4.3 cond [:length, [:list, 1, 2]] 4.3 cond if if cond [:cond, [[:>, 1, 1], 1], [[:>, 2, 1], 2], [[:>, 3, 1], 3], [:else, -1]] cond :else 2 if def eval_cond(exp, env) if_exp = cond_to_if(cdr(exp)) eval_if(if_exp, env) def cond_to_if(cond_exp) if cond_exp == [] '' else e = car(cond_exp) p, c = e[0], e[1] if p == :else p = :true [:if, p, c, cond_to_if(cdr(cond_exp))] def cond?(exp) exp[0] == :cond 4.4 Ruby Ruby Ruby Lisp Scheme 24
32 4 4.5 quote () Scheme Ruby [], Ruby () Scheme _eval(parse('(define (length list) (if (null?, list) 0 (+ (length (cdr list)) 1)))'), $global_env) puts _eval(parse('(length (list 1 2 3))'), $global_env) ( ) [ ] Ruby :, def parse(exp) program = exp.strip(). gsub(/[a-za-z\+\-\*><=][0-9a-za-z\+\-=!*]*/, ':\\0'). gsub(/\s+/, ', '). gsub(/\(/, '['). gsub(/\)/, ']') eval(program) 4.5 quote quote puts _eval(parse('(length (quote (1 2 3)))'), $global_env) quote *3 quote def eval_quote(exp, env) car(cdr(exp)) def quote?(exp) exp[0] == :quote * 3 quote (quote 1 2 3) (1 2 3) quote Ruby
33 4 4.6 REPL def special_form?(exp) lambda?(exp) or let?(exp) or letrec?(exp) or if?(exp) or cond?(exp) or define?(exp) or quote?(exp) def eval_special_form(exp, env) if lambda?(exp) eval_lambda(exp, env) elsif let?(exp) eval_let(exp, env) elsif letrec?(exp) eval_letrec(exp, env) elsif if?(exp) eval_if(exp, env) elsif cond?(exp) eval_cond(exp, env) elsif define?(exp) eval_define(exp, env) elsif quote?(exp) eval_quote(exp, env) 4.6 REPL (Read) (Eval) (Print) (Loop) REPL pp *4 def repl prompt = '>>> ' second_prompt = '> ' while true print prompt line = gets or return while line.count('(') > line.count(')') print second_prompt next_line = gets or return line += next_line * 4 pretty print 26
34 4 4.6 REPL redo if line =~ /\A\s*\z/m begin val = _eval(parse(line), $global_env) rescue Exception => e puts e.to_s redo puts pp(val) def closure?(exp) exp[0] == :closure def pp(exp) if exp.is_a?(symbol) or num?(exp) exp.to_s elsif exp == nil 'nil' elsif exp.is_a?(array) and closure?(exp) parameter, body, env = exp[1], exp[2], exp[3] "(closure #{pp(parameter)} #{pp(body)})" elsif exp.is_a?(array) and lambda?(exp) parameters, body = exp[1], exp[2] "(lambda #{pp(parameters)} #{pp(body)})" elsif exp.is_a?(hash) if exp == $primitive_fun_env '*prinmitive_fun_env*' elsif exp == $boolean_env '*boolean_env*' elsif exp == $list_env '*list_env*' else '{' + exp.map{ k, v pp(k) + ':' + pp(v)}.join(', ') + '}' elsif exp.is_a?(array) '(' + exp.map{ e pp(e)}.join(', ') + ')' else exp.to_s >> repl >>> (define (fib n) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2))))) nil >>> (fib 10) 55 27
35 named let let* Haskell 4.8 define cond quote REPL 28
36 5 5.1 Scheme in SchemeR Ruby Scheme Ruby Scheme Scheme SchemeR Ruby SchemeR ( Ruby )Scheme Scheme SchemeR Ruby 2 letrec define :set! define special_form? eval_special_form def eval_set!(exp, env) var, val = setq_to_var_val(exp) var_ref = lookup_var_ref(var, env) if var_ref!= nil var_ref[var] = _eval(val, env) else raise "undefined variable:'#{var}'" nil def setq_to_var_val(exp) [exp[1], exp[2]] def setq?(exp) exp[0] == :setq 29
37 5 5.2 SICP (let ((x 1)) (let ((dummy (set! x 2))) x)) 2 : (define (makecounter) (let ((count 0)) (lambda () (let ((dummy (set! count (+ count 1)))) count)))) (define inc (makecounter)) (inc) (inc) makecounter makecounter inc count 1 count inc makecounter inc count 5.2 SICP SICP Structure and Interpretaion of Computer Programs 2nd ed. ( 2 [1] ) SchemeR SICP Scheme 30
38 ( )? I-expression *1 Python? define (fact x) if (= x 0) 1 * x fact (- x 1) URL I-Expression SchemeR SchemeR I-expression Scheme *
39 [1],,
40 Ruby Scheme v1.0.0 (C) 2013 Masahiro Watanabe
(CC Attribution) Lisp 2.1 (Gauche )
http://www.flickr.com/photos/dust/3603580129/ (CC Attribution) Lisp 2.1 (Gauche ) 2 2000EY-Office 3 4 Lisp 5 New York The lisps Sammy Tunis flickr lisp http://www.flickr.com/photos/dust/3603580129/ (CC
More informationr3.dvi
2012 3 / Lisp(2) 2012.4.19 1 Lisp 1.1 Lisp Lisp (1) (setq) (2) (3) setq defun (defun (... &aux...)...) ( ) ( nil ) [1]> (defun sisoku (x y &aux wa sa sho seki) (setq wa (+ x y)) (setq sa (- x y)) (setq
More informationr3.dvi
/ 94 2 (Lisp ) 3 ( ) 1994.5.16,1994.6.15 1 cons cons 2 >(cons a b) (A. B).? Lisp (S ) cons 2 car cdr n A B C D nil = (A B C D) nil nil A D E = (A (B C) D E) B C E = (A B C D. E) A B C D B = (A. B) A nil.
More information1. A0 A B A0 A : A1,...,A5 B : B1,...,B
1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 3. 4. 5. A0 A B f : A B 4 (i) f (ii) f (iii) C 2 g, h: C A f g = f h g = h (iv) C 2 g, h: B C g f = h f g = h 4 (1) (i) (iii) (2) (iii) (i) (3) (ii) (iv) (4)
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 1, 2 of 14 ( RD S ) I 1, 2 of 14 1 / 44 Ruby Ruby ( RD S ) I 1, 2 of 14 2 / 44 7 5 9 2 9 3 3 2 6 5 1 3 2 5 6 4 7 8 4 5 2 7 9 6 4 7 1 3 ( RD S ) I 1, 2
More information1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 5 3. 4. 5. A0 (1) A, B A B f K K A ϕ 1, ϕ 2 f ϕ 1 = f ϕ 2 ϕ 1 = ϕ 2 (2) N A 1, A 2, A 3,... N A n X N n X N, A n N n=1 1 A1 d (d 2) A (, k A k = O), A O. f
More informationParametric Polymorphism
ML 2 2011/04/19 Parametric Polymorphism Type Polymorphism ? : val hd_int : int list - > int val hd_bool : bool list - > bool val hd_i_x_b : (int * bool) list - > int * bool etc. let hd_int = function (x
More informationparser.y 3. node.rb 4. CD-ROM
1. 1 51 2. parser.y 3. node.rb 4. CD-ROM 1 10 2 i 0 i 10 " i i+1 3 for(i = 0; i
More informationJacques Garrigue
Jacques Garrigue Garrigue 1 Garrigue 2 $ print_lines () > for i in $1; do > echo $i > done $ print_lines "a b c" a b c Garrigue 3 Emacs Lisp (defun print-lines (lines) (dolist (str lines) (insert str)
More informationScheme Hygienic Macro stibear (@stibear1996) 1 Scheme Scheme Lisp Lisp Common Lisp Emacs Lisp Clojure Scheme 1 Lisp Lisp Lisp Lisp Homoiconicity Lisper 2 Common Lisp gensym Scheme Common Lisp Scheme Lisp-1
More information1. A0 A B A0 A : A1,...,A5 B : B1,...,B
1. A0 A B A0 A : A1,...,A5 B : B1,...,B12 2. 3. 4. 5. A0 A, B Z Z m, n Z m n m, n A m, n B m=n (1) A, B (2) A B = A B = Z/ π : Z Z/ (3) A B Z/ (4) Z/ A, B (5) f : Z Z f(n) = n f = g π g : Z/ Z A, B (6)
More informationhaskell.gby
Haskell 1 2 3 Haskell ( ) 4 Haskell Lisper 5 Haskell = Haskell 6 Haskell Haskell... 7 qsort [8,2,5,1] [1,2,5,8] "Hello, " ++ "world!" "Hello, world!" 1 + 2 div 8 2 (+) 1 2 8 div 2 3 4 map even [1,2,3,4]
More informationMicrosoft PowerPoint - IntroAlgDs-06-8.ppt
アルゴリズムとデータ構造入門 2006 年 11 月 21 日 アルゴリズムとデータ構造入門 2. データによる抽象の構築 2.2 階層データ構造と閉包性 奥乃博大学院情報学研究科知能情報学専攻知能メディア講座音声メディア分野 http://winnie.kuis.kyoto-u.ac.jp/~okuno/lecture/06/introalgds/ okuno@i.kyoto-u.ac.jp 12
More informationRuby Ruby ruby Ruby G: Ruby>ruby Ks sample1.rb G: Ruby> irb (interactive Ruby) G: Ruby>irb -Ks irb(main):001:0> print( ) 44=>
Ruby Ruby 200779 ruby Ruby G: Ruby>ruby Ks sample1.rb G: Ruby> irb (interactive Ruby) G: Ruby>irb -Ks irb(main):001:0> print( 2+3+4+5+6+7+8+9 ) 44 irb(main):002:0> irb irb(main):001:0> 1+2+3+4 => 10 irb(main):002:0>
More informationSCM (v0201) ( ) SCM 2 SCM 3 SCM SCM 2.1 SCM SCM SCM (1) MS-DOS (2) Microsoft(R) Windows 95 (C)Copyright Microsoft Corp
SCM (v0201) ( ) 14 4 20 1 SCM 2 SCM 3 SCM 4 5 2 SCM 2.1 SCM SCM 2 1 2 SCM (1) MS-DOS (2) Microsoft(R) Windows 95 (C)Copyright Microsoft Corp 1981-1996. 1 (3) C:\WINDOWS>cd.. C:\>cd scm C:\SCM> C:\SCM>
More information51 Lego MindStorms Lisp XS Lego MindStorms 8 CPU RCX RCX Lisp XS XS RCX PC Scheme Lego MindStorms is a robot development kit which makes it possible t
51 Lego MindStorms Lisp XS Lego MindStorms 8 CPU RCX RCX Lisp XS XS RCX PC Scheme Lego MindStorms is a robot development kit which makes it possible to control one s own robot by attaching various sensors
More information6-1
6-1 (data type) 6-2 6-3 ML, Haskell, Scala Lisp, Prolog (setq x 123) (+ x 456) (setq x "abc") (+ x 456) ; 6-4 ( ) subtype INDEX is INTEGER range -10..10; type DAY is (MON, TUE, WED, THU, FRI, SAT, SUN);
More informationr1.dvi
Ruby 2009.9.7 1 ( ) --- ( ( ) ( ) 1 --- ( ) 1 ( ) (?) IT 7K( )?? ( ) ( )? IT ( ) --- ( ) 1 ( ) --- ( ) (?) 2-3% Top-Level ICT Professional 5% ICT Professional 10% 100% 50% 20% Devl. Experiment Adv. ICT
More informationBASIC / / BA- SIC Web 1/10 1/10 / / JavaScript
BASIC / / BA- SIC Web 1/10 1/10 // JavaScript MIT Processing line(10,10,100,100); 1 BASIC / Phidgets 1 GAINER 2 USB / Phidgets USB 1: 1 http://www.phidgets.com/ 2 http://gainer.cc/ / / BGM Phidgets University
More informationlistings-ext
(6) Python (2) ( ) ohsaki@kwansei.ac.jp 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 13 of 14 ( RD S ) I 13 of 14 1 / 39 https://bit.ly/oitprog1 ( RD S ) I 13 of 14 2 / 39 game.rb ( RD S ) I 13 of 14 3 / 39 game.rb 12 ( ) 1 require "io/console"
More informationVDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool
VDM-SL VDM++ 23 6 28 VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web 2 1 3 1.1............................................... 3 1.1.1 bool......................................... 3 1.1.2 real rat int
More information( ) ( ) lex LL(1) LL(1)
() () lex LL(1) LL(1) http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/ 29 5 14 1 1 () / (front end) (back end) (phase) (pass) 1 2 1 () () var left, right; fun int main() { left = 0; right = 10;
More informationr2.dvi
15 2 1 2015.6.2 ( ( ( Ruby ( ( https://www.ruby-lang.org/ja/documentation/ 2 Chris Pine,, 2,, 2010. Yugui, Ruby,, 2008. Ruby 1 ( Ruby ( 2 ( i i j ( ) /( (regular expression Ruby /.../ ( 1 if / / =~ =~
More information# let rec sigma (f, n) = # if n = 0 then 0 else f n + sigma (f, n-1);; val sigma : (int -> int) * int -> int = <fun> sigma f n ( : * -> * ) sqsum cbsu
II 4 : 2001 11 7 keywords: 1 OCaml OCaml (first-class value) (higher-order function) 1.1 1 2 + 2 2 + + n 2 sqsum 1 3 + 2 3 + + n 3 cbsum # let rec sqsum n = # if n = 0 then 0 else n * n + sqsum (n - 1)
More informationorg/ghc/ Windows Linux RPM 3.2 GHCi GHC gcc javac ghc GHCi(ghci) GHCi Prelude> GHCi :load file :l file :also file :a file :reload :r :type expr :t exp
3 Haskell Haskell Haskell 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 6. C Java 3.1 Haskell Haskell GHC (Glasgow Haskell Compiler 1 ) GHC Haskell GHC http://www.haskell. 1 Guarded Horn Clauses III - 1 org/ghc/ Windows
More informationuntitled
II 4 Yacc Lex 2005 : 0 1 Yacc 20 Lex 1 20 traverse 1 %% 2 [0-9]+ { yylval.val = atoi((char*)yytext); return NUM; 3 "+" { return + ; 4 "*" { return * ; 5 "-" { return - ; 6 "/" { return / ; 7 [ \t] { /*
More informationMicrosoft PowerPoint - IntroAlgDs-05-7.ppt
アルゴリズムとデータ構造入門 2005 年 11 月 15 日 アルゴリズムとデータ構造入門 2. データによる抽象の構築 2 Building Abstractions with Data 奥乃 博 具体から抽象へは行けるが 抽象から具体へは行けない ( 畑村洋太郎 直観でわかる数学 岩波書店 ) 1 11 月 15 日 本日のメニュー 2 Building Abstractions with Data
More informationMicrosoft PowerPoint - IntroAlgDs-05-2.ppt
アルゴリズムとデータ構造入門 2005 年 10 月 11 日 アルゴリズムとデータ構造入門 1. 手続きによる抽象の構築 1.1 プログラムの要素 奥乃 博 1. TUT Schemeが公開されました. Windowsは動きます. Linux, Cygwin はうまく行かず. 調査中. 2. 随意課題 7の追加 友人の勉学を助け,TAの手伝いをする. 支援した内容を毎回のレポート等で詳細に報告.
More informationprovider_020524_2.PDF
1 1 1 2 2 3 (1) 3 (2) 4 (3) 6 7 7 (1) 8 (2) 21 26 27 27 27 28 31 32 32 36 1 1 2 2 (1) 3 3 4 45 (2) 6 7 5 (3) 6 7 8 (1) ii iii iv 8 * 9 10 11 9 12 10 13 14 15 11 16 17 12 13 18 19 20 (2) 14 21 22 23 24
More information4 (induction) (mathematical induction) P P(0) P(x) P(x+1) n P(n) 4.1 (inductive definition) A A (basis ) ( ) A (induction step ) A A (closure ) A clos
4 (induction) (mathematical induction) P P(0) P(x) P(x+1) n P(n) 4.1 (inductive definition) A A (basis ) ( ) A (induction step ) A A (closure ) A closure 81 3 A 3 A x A x + A A ( A. ) 3 closure A N 1,
More informationMicrosoft PowerPoint Lisp.ppt [互換モード]
櫻井彰人 プログラム言語論 (8) Lisp, 1960 Historical Lisp 展望 古いアイデアには古いものもある 古いアイデアには新しいものもある エレガントな 極めてコンパクトな言語 C とは異世界 : 別の考え方をするよい機会 言語設計における多くの一般的課題を含む 参考文献 McCarthy, Recursive functions of symbolic expressions
More information: gettoken(1) module P = Printf exception End_of_system (* *) let _ISTREAM = ref stdin let ch = ref ( ) let read () = (let c =!ch in ch := inp
7 OCaml () 1. 2. () (compiler) (interpreter) 2 OCaml (syntax) (BNF,backus normal form ) 1 + 2; let x be 2-1 in x; ::= ; let be in ; ::= + - ::= * / ::= 7.1 ( (printable characters) (tokens) 1 (lexical
More information109 i Lisp KVM Java VM Lisp Java Lisp JAKLD KVM Lisp JAKLD Java Lisp KVM API We present a Lisp system that can be downloaded to and used on mobile pho
109 i Lisp KVM Java VM Lisp Java Lisp JAKLD KVM Lisp JAKLD Java Lisp KVM API We present a Lisp system that can be downloaded to and used on mobile phones. This system was developed as a side-product of
More information3360 druby Web Who is translating it? http://dx.doi.org/10.1007/s10766-008-0086-1 $32.00 International Journal of PARALLEL PROGRAMING Must buy! http://dx.doi.org/10.1007/s10766-008-0086-1 toruby LT Linux
More informationld-2.dvi
Ld-2 Common Lisp TR-98-19 1998 8 19 1 3 2 4 2.1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
More informationjssst-ocaml.mgp
Objective Caml Jacques Garrigue Kyoto University garrigue@kurims.kyoto-u.ac.jp Objective Caml? 2 Objective Caml GC() Standard MLHaskell 3 OCaml () OCaml 5 let let x = 1 + 2 ;; val x : int = 3 ;; val-:
More information44 4 I (1) ( ) (10 15 ) ( 17 ) ( 3 1 ) (2)
(1) I 44 II 45 III 47 IV 52 44 4 I (1) ( ) 1945 8 9 (10 15 ) ( 17 ) ( 3 1 ) (2) 45 II 1 (3) 511 ( 451 1 ) ( ) 365 1 2 512 1 2 365 1 2 363 2 ( ) 3 ( ) ( 451 2 ( 314 1 ) ( 339 1 4 ) 337 2 3 ) 363 (4) 46
More informationi ii i iii iv 1 3 3 10 14 17 17 18 22 23 28 29 31 36 37 39 40 43 48 59 70 75 75 77 90 95 102 107 109 110 118 125 128 130 132 134 48 43 43 51 52 61 61 64 62 124 70 58 3 10 17 29 78 82 85 102 95 109 iii
More information「プログラミング言語」 SICP 第4章 ~超言語的抽象~ その6
SICP 4 6 igarashi@kuis.kyoto-u.ac.jp July 21, 2015 ( ) SICP 4 ( 6) July 21, 2015 1 / 30 4.3: Variations on a Scheme Non-deterministic Computing 4.3.1: amb 4.3.2: 4.3.3: amb ( ) SICP 4 ( 6) July 21, 2015
More informationr9.dvi
2011 9 2011.12.9 Ruby B Web ( ) 1 1.1 2 def delete if at then return @cur = @prev.next = @cur.next (1) EOF (2)@cur 1 ()@prev 1 def exch if at @cur.next == @tail then return a = @prev; b = @cur.next; c
More informationEmacs ML let start ::= exp (1) exp ::= (2) fn id exp (3) ::= (4) (5) ::= id (6) const (7) (exp) (8) let val id = exp in
Emacs, {l06050,sasano}@sic.shibaura-it.ac.jp Eclipse Visual Studio Standard ML Haskell Emacs 1 Eclipse Visual Studio variable not found LR(1) let Emacs Emacs Emacs Java Emacs JDEE [3] JDEE Emacs Java 2
More information1153006 JavaScript try-catch JavaScript JavaScript try-catch try-catch try-catch try-catch try-catch 1 2 2 try-catch try-catch try-catch try-catch 25 1153006 26 2 12 1 1 1 2 3 2.1... 3 2.1.1... 4 2.1.2
More informationMicrosoft PowerPoint - 13Kadai.pptx
提出 講義での説明を聞いて下さい 櫻井彰人 コンパイラ理論課題 締め切りは 8 月 1 日とします 順不同で できるものをできるだけ多く回答して下さい 電子メールで sakurai あっと ae どっと keio どっと ac どっと jp に送ってください ファイル形式は pdf か MsWord で ただし プログラムはテキストファイルで レポート課題 1 それぞれ 1 問として考えます 電卓
More informationML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1
More Logic More Types ML/OCaml GADT Jacques Garrigue ( ) Jacques Le Normand (Google) Didier Rémy (INRIA) @garriguejej ocamlgadt ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 1 ( ) ML type nebou and
More informationohp1.dvi
2008 1 2008.10.10 1 ( 2 ) ( ) ( ) 1 2 1.5 3 2 ( ) 50:50 Ruby ( ) Ruby http://www.ruby-lang.org/ja/ Windows Windows 3 Web Web http://lecture.ecc.u-tokyo.ac.jp/~kuno/is08/ / ( / ) / @@@ ( 3 ) @@@ :!! ( )
More information2 Mar Java (2) Java 3 Java (1) Java 19),20) Scheme Java car public static void Lcar(BCI bci) { Object x = bci.vs[bci.vsbase + 1]; if (!(x instan
Vol. 44 No. SIG 4(PRO 17) Mar. 2003 Java Lisp Java Lisp (1) Lisp Java (2) (3) Java Java Lisp Lisp Lisp IEEE Scheme 3,500 100 K A Lisp Driver to Be Embedded in Java Applications Taiichi Yuasa We present
More informationAccessflÌfl—−ÇŠš1
ACCESS ACCESS i ii ACCESS iii iv ACCESS v vi ACCESS CONTENTS ACCESS CONTENTS ACCESS 1 ACCESS 1 2 ACCESS 3 1 4 ACCESS 5 1 6 ACCESS 7 1 8 9 ACCESS 10 1 ACCESS 11 1 12 ACCESS 13 1 14 ACCESS 15 1 v 16 ACCESS
More informationlifedesign_contest_No3
1 3 5 Apple Developer Program 5 AWS 8 Raspberry Pi 14 18 19 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:createplatformendpoint" ], "Resource": [ ] ] #
More information連立1次方程式Ax=bの解法:公式にしたがって解くのは,計算量大
Common Lisp プログラミング入門 概要 Lisp は記号の構造的な表現である S 式を操作するインタープリタ方式を基調とするプログラミング言語である. ここでは, 思考のツールとしての Lisp を強調した解説を行う.. Lisp のしくみ Lisp で中心となるのは,S 式 (Symbolic Expression) と呼ばれる記号の構造的な表現である.Lisp ユーザはインタープリタを使って,S
More information¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~alse
I Exercise on Programming I http://bit.ly/oitprog1 12 of 14 ( RD S ) I 12 of 14 1 / 35 https://bit.ly/oitprog1 ( RD S ) I 12 of 14 2 / 35 game.rb ( RD S ) I 12 of 14 3 / 35 game.rb 11 ( ) 1 require "io/console"
More informationex01.dvi
,. 0. 0.0. C () /******************************* * $Id: ex_0_0.c,v.2 2006-04-0 3:37:00+09 naito Exp $ * * 0. 0.0 *******************************/ #include int main(int argc, char **argv) { double
More informationWorking Effectively with Legacy tdiary Code using Cucumber and RSpec KAKUTANI Shintaro; Eiwa System Management,Inc.; Nihon Ruby-no-kai pragprog.com Working Effectively with Legacy tdiary code using
More informationRuby 50 Ruby UTF print, \n [Ruby-1] print("hello, Ruby.\n") [Ruby-2] Hello, Ruby. [Ruby-3] print("hello, \"Ruby\".\n") 2 [Ruby-4] seisuu = 10 pr
Ruby 50 Ruby UTF-8 1 1 print, \n [Ruby-1] print("hello, Ruby.\n") [Ruby-2] Hello, Ruby. [Ruby-3] print("hello, \"Ruby\".\n") 2 [Ruby-4] seisuu = 10 print(seisuu, "\n") jissuu = 3.141592 print(jissuu, "\n")
More information2
2011.11.11 1 2 MapReduce 3 4 5 6 Functional Functional Programming 7 8 9 10 11 12 13 [10, 20, 30, 40, 50] 0 n n 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 14 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50
More informationjakld-lecture13.pptx
1 大学院情報学研究科知能情報学専攻知能メディア講座音声メディア分野 http://winnie.kuis.kyoto-u.ac.jp/~uno/lecture/10/introalgds/ uno@i.kyoto-u.ac.jp, uno@nue.org TA の居室は総合研究 7 号館 4 階 418 号室 (M1) 奥乃研 音楽情報処理 G (M1) 奥乃研 ロボット聴覚 G (M1) 奥乃研
More informationtest.gby
Beautiful Programming Language and Beautiful Testing 1 Haskeller Haskeller 2 Haskeller (Doctest QuickCheck ) github 3 Haskeller 4 Haskell Platform 2011.4.0.0 Glasgow Haskell Compiler + 23 19 8 5 10 5 Q)
More informationohp07.dvi
17 7 (2) 2017.9.13 1 BNF BNF ( ) ( ) 0 ( ) + 1 ( ) ( ) [ ] BNF BNF BNF prog ::= ( stat ) stat ::= ident = expr ; read ident ; print expr ; if ( expr ) stat while ( expr ) stat { prog expr ::= term ( +
More informationsyspro-0405.ppt
3 4, 5 1 UNIX csh 2.1 bash X Window 2 grep l POSIX * more POSIX 3 UNIX. 4 first.sh #!bin/sh #first.sh #This file looks through all the files in the current #directory for the string yamada, and then prints
More informationuntitled
30 callcc yhara ( ( ) (1) callcc (2) callcc (3) callcc callcc Continuation callcc (1) (2) (3) (1) (2) (3) (4) class Foo def f p 1 callcc{ cc return cc} p 2 class Bar def initialize @cc = Foo.new.f def
More informationC言語によるアルゴリズムとデータ構造
Algorithms and Data Structures in C 4 algorithm List - /* */ #include List - int main(void) { int a, b, c; int max; /* */ Ÿ 3Ÿ 2Ÿ 3 printf(""); printf(""); printf(""); scanf("%d", &a); scanf("%d",
More information=
2. 2.1 2.2 kuri@ice.uec.ac.jp ( 2007/10/30/16:46) 1 . 1. 1 + 2 = 5. 2. 180. 3. 3 3. 4.. 5.. 2 2.1 1.,,,,. 2., ( ) ( ).,,,, 3.,. 4.,,,. 3 1.,. 1. 1 + 2 = 5. (, ) 2. 180. (, ) 3. 3, 3. (, ) 4.. (, ) 5..
More informationEmacs Ruby..
command line editor 27014533 2018 3 1 5 1.1................................... 5 1.2................................... 5 2 6 2.1 Emacs...................................... 6 2.2 Ruby.......................................
More information6 (1) app.html.eex 28 lib/nano_planner_web/templates/layout/app.html.eex 27 <footer> Oiax Inc <%= this_year() %> Oiax Inc. 29 </footer>
6 (1) of_today 6.1 Copyright 2017 lib/nano_planner_web/views layout_view.ex this_year/0 lib/nano_planner_web/views/layout_view.ex 1 defmodule NanoPlannerWeb.LayoutView do 2 use NanoPlannerWeb, view 3 +
More information( ) ( ) ( ) 2
(Basic Theory of Information Processing) 1 1 1.1 - - ( ) ( ) ( ) 2 Engineering Transformation or ( ) Military Transformation ( ) ( ) ( ) HDTV 3 ( ) or ( ) 4 5.609 (TSUBAME2.5, 11 (2014.6)) IP ( ) ( ) (
More informationcomp -MYPEDIA Programing- Ruby 1 attr_accessor :< 1>, :< 2> class Car def = carname end attr_accessor :name end car = Car.ne
Ruby 1 attr_accessor :< 1>, :< 2> class Car def initialize(carname) @name = carname attr_accessor :name car = Car.new("car1") car.name = "car2" puts car.name attr_reader :< 1>, :< 2> class Car def initialize(carname)
More informationMicrosoft PowerPoint - 11RubyIntro-No02.ppt [互換モード]
Ruby 入門 東京電機大学櫻井彰人 Ruby とは? Ruby: 松本ゆきひろ氏による (1993) 純粋オブジェクト指向 スクリプト言語 Web プログラムで どんどんポピュラーに Ruby on Rails (http://www.rubyonrails.org/) なぜか きわめて Lisp like 松本行弘 (Matz) Introduction 実行環境 Windows/Unix/Linux/
More information() / (front end) (back end) (phase) (pass) 1 2
1 () () lex http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/ 2018 4 1 () / (front end) (back end) (phase) (pass) 1 2 () () var left, right; fun int main() { left = 0; right = 10; return ((left
More informationJavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2
JavaScript (2) 1 JavaScript 1.! 1. 2. 3. DOM 4. 2. 3. Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2 (1) var a; a = 8; a = 3 + 4; a = 8 3; a = 8 * 2; a = 8 / 2; a = 8 % 3; 1 a++; ++a; (++
More information1 ( : Documents/kadai4), (ex.py ),. print 12345679 * 63, cd Documents/kadai4, python ex.py., python: can t open file ex.py : [Errno 2] No such file or
Python 2010.6 1 Python 1.1 ( ). mi.,.py. 1.2, python.. 1. python, python. ( ). 2.., python. Python (>>>). Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type help, copyright,
More information10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #<PlanItem id nil, name nil,...> > item.name = "" => "" > item.valid? => true valid? true false
10 (1) 16 7 PicoPlanner validations 10.1 PicoPlanner Web Web invalid values validations Rails validates validate 107 10 (1) s 10.2 rails c Rails 7 > item = PlanItem.new => #
More information# let st1 = {name = "Taro Yamada"; id = };; val st1 : student = {name="taro Yamada"; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n
II 6 / : 2001 11 21 (OCaml ) 1 (field) name id type # type student = {name : string; id : int};; type student = { name : string; id : int; } student {} type = { 1 : 1 ;...; n : n } { 1 = 1 ;...; n = n
More information2
Haskell ( ) kazu@iij.ad.jp 1 2 Blub Paul Graham http://practical-scheme.net/trans/beating-the-averages-j.html Blub Blub Blub Blub 3 Haskell Sebastian Sylvan http://www.haskell.org/haskellwiki/why_haskell_matters...
More informationexec.dvi
2018 c 6, Mini-C C++ 6211 611, 61, print,,, (run ),,, (int ), 7, x, x "a" 3 "b" 4 "x" 10 (, ), x STL map 1 + 2, 1 2,, x = ;, 1, 2 x { 1 ; 2 ; ; m, if ( ) { 1 else { 2, 1,, 2 0, 1, 3 0, 2,,, main 6 1 ,,
More informationML λ λ 1 λ 1.1 λ λ λ e (λ ) ::= x ( ) λx.e (λ ) e 1 e 2 ( ) ML λx.e Objective Caml fun x -> e x e let 1
2005 sumii@ecei.tohoku.ac.jp 2005 6 24 ML λ λ 1 λ 1.1 λ λ λ e (λ ) ::= x ( ) λx.e (λ ) e 1 e 2 ( ) ML λx.e Objective Caml fun x -> e x e let 1 let λ 1 let x = e1 in e2 (λx.e 2 )e 1 e 1 x e 2 λ 3 λx.(λy.e)
More informationi
14 i ii iii iv v vi 14 13 86 13 12 28 14 16 14 15 31 (1) 13 12 28 20 (2) (3) 2 (4) (5) 14 14 50 48 3 11 11 22 14 15 10 14 20 21 20 (1) 14 (2) 14 4 (3) (4) (5) 12 12 (6) 14 15 5 6 7 8 9 10 7
More informationbdd.gby
Haskell Behavior Driven Development 2012.5.27 @kazu_yamamoto 1 Haskell 4 Mew Firemacs Mighty ghc-mod 2 Ruby/Java HackageDB 3 Haskeller 4 Haskeller 5 Q) Haskeller A) 6 7 Haskeller Haskell 8 9 10 Haskell
More informationMicrosoft PowerPoint - 2-LispProgramming-full
2013 年 5 月 31 日 Lisp プログラミング入門 西田豊明 Copyright 2013 Toyoaki Nishida All Rights Reserved. 今回あらすじ 1. Lisp の実践的な使い方を学習する. 2. Lisp インタープリタの動かし方, 電卓的使い方, 関数定義, 条件分岐,S 式の基本操作, プログラミング手法, プロトタイピング法などを中心に解説する.
More informationuntitled
P04 P23 P21 01 CONTENTS P0305 P28 30 P28 1 2 3 4 5 P07 P09 P13 P15 P19 P30 6 P21 7 8 P22 P25 02 03 04 05 P04 P07P28 P29 06 1 2 3 4 1 07 5-1 -2 6 7-1 -2 8 08 1 2 3 4 2 1 09 5-1 -2 6 7-1 -2 8 10 1 2 3 4
More information「計算と論理」 Software Foundations その4
Software Foundations 4 cal17@fos.kuis.kyoto-u.ac.jp http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/class/cal/ November 7, 2017 ( ) ( 4) November 7, 2017 1 / 51 Poly.v ( ) ( 4) November 7, 2017 2 / 51 : (
More informationプログラミングD - Java
プログラミング D 講義資料 中田明夫 nakata@ist.osaka-u.ac.jp ML 教科書 プログラミング言語 Standard ML 入門 :1,2 章 講義のねらい 関数型プログラムを知る 関数型プログラムを知る利点 プログラムを統一的, 抽象的に捕らえる リスト処理, 高階関数, 再帰関数定義 リストやツリーなどのデータ構造は再帰的に定義 再帰関数で扱うとプログラミングが容易 数学的な裏付け
More information¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè2²ó
2 212 4 13 1 (4/6) : ruby 2 / 35 ( ) : gnuplot 3 / 35 ( ) 4 / 35 (summary statistics) : (mean) (median) (mode) : (range) (variance) (standard deviation) 5 / 35 (mean): x = 1 n (median): { xr+1 m, m = 2r
More informationfp.gby
1 1 2 2 3 2 4 5 6 7 8 9 10 11 Haskell 12 13 Haskell 14 15 ( ) 16 ) 30 17 static 18 (IORef) 19 20 OK NG 21 Haskell (+) :: Num a => a -> a -> a sort :: Ord a => [a] -> [a] delete :: Eq a => a -> [a] -> [a]
More informationjavascript key
Associate Professor Department of International Social Studies KYOAI GAKUEN UNIVERSITY Email: ogashiwa@c.kyoai.ac.jp, ogashiwa@wide.ad.jp sample
More information第1部 一般的コメント
(( 2000 11 24 2003 12 31 3122 94 2332 508 26 a () () i ii iii iv (i) (ii) (i) (ii) (iii) (iv) (a) (b)(c)(d) a) / (i) (ii) (iii) (iv) 1996 7 1996 12
More information( ) [2] H 4 4! H 4 4! (5 4 3 )= = Fortran C 0 #include <stdio.h> 1 #include
J.JSSAC (2006) Vol. 12, No. 3, pp. 3-16 IIJ 2000 8 bit TULIPS KING KISS WINK 1 ( ) Ackermann GC [1] CPU 6502 wada@u-tokyo.ac.jp c 2006 Japan Society for Symbolic and Algebraic Computation 4 12 3 2006 (1943-05-16
More information3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200,
WEB DB PRESS Vol.1 79 3 Powered by mod_perl, Apache & MySQL use Item; my $item = Item->new( id => 1, name => ' ', price => 1200, http://www.postgresql.org/http://www.jp.postgresql.org/ 80 WEB DB PRESS
More information表1票4.qx4
iii iv v 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 10 11 24 25 26 27 10 56 28 11 29 30 12 13 14 15 16 17 18 19 2010 2111 22 23 2412 2513 14 31 17 32 18 33 19 34 20 35 21 36 24 37 25 38 2614
More information第1章 国民年金における無年金
1 2 3 4 ILO ILO 5 i ii 6 7 8 9 10 ( ) 3 2 ( ) 3 2 2 2 11 20 60 12 1 2 3 4 5 6 7 8 9 10 11 12 13 13 14 15 16 17 14 15 8 16 2003 1 17 18 iii 19 iv 20 21 22 23 24 25 ,,, 26 27 28 29 30 (1) (2) (3) 31 1 20
More informationshift/reset [13] 2 shift / reset shift reset k call/cc reset shift k shift (...) k 1 + shift(fun k -> 2 * (k 3)) k 2 * (1 + 3) 8 reset shift reset (..
arisa@pllab.is.ocha.ac.jp asai@is.ocha.ac.jp shift / reset CPS shift / reset CPS CPS 1 [3, 5] goto try/catch raise call/cc [17] control/prompt [8], shift/reset [5] control/prompt, shift/reset call/cc (continuationpassing
More information