Parametric Polymorphism
|
|
|
- たみえ ままだ
- 7 years ago
- Views:
Transcription
1 ML /04/19
2 Parametric Polymorphism
3 Type Polymorphism
4 ?
5 : val hd_int : int list - > int val hd_bool : bool list - > bool val hd_i_x_b : (int * bool) list - > int * bool etc.
6 let hd_int = function (x :: _) - > x ;; let hd_bool = function (x :: _) - > x ;; let hd_i_x_b = function (x :: _) - > x ;;?
7 : hd[α] : α list α hd[int] : int list int hd[bool] : bool list bool hd[int * bool] : (int * bool) list (int * bool) hd[α] OCaml
8 Parametric Polymorphism Cf. polymorphism ( subtyping polymorphism) Java Cf. overloading (ad- hoc polymorphism) OCaml Haskell type class
9 : # let id x = x;; val id : 'a - > 'a = <fun> # id 1;; - : int = 1 # id [1; 2; 3];; - : int list = [1; 2; 3] # id (fun x - > x + 1);; - : int - > int = <fun> 'a 'b
10 : # let fst (x, _) = x;; val fst : 'a * 'b - > 'a = <fun> # let snd (_, x) = x;; val snd : 'a * 'b - > 'b = <fun>
11 : n # let rec make_list n v = if n = 0 then [] else v :: make_list (n 1) v;; val make_list : int - > 'a - > 'a list = <fun> # make_list 3 1;; - : int list = [1; 1; 1] # make_list 4 "a";; - : string list = ["a"; "a"; "a"; "a"]
12 fold_left : ('a - > 'b - > 'a) - > 'a - > 'b list - > 'a fold_right : ('a - > 'b - > 'b) - > 'a list - > 'b - > 'b append : 'a list - > 'a list - > 'a list filter : ('a - > bool) - > 'a list - > 'a list split : ('a * 'b) list - > 'a list * 'b list comb : 'a list - > int - > 'a list list
13 # let id x = x;; val id : 'a - > 'a = <fun> # let id (x : int) = x;; val id : int - > int = <fun> # let id x = (x : int);; val id : int - > int = <fun> # id true;; This expression has type bool but
14 User- Defined Types
15 (record) C struct (variant) C enum, union, struct
16 : type = { 1 : 1 ; 2 : 2 ; } : complex # type complex = { re : float; im : float };; type complex = { re : float; im : float };;
17 { 1 = 1 ; 2 = 2 ; } : complex # let c1 = { re = 5.0; im = 3.0 };; val c1 : complex = {re = 5.; im = 3.}
18 . : # c1.re;; - : float = 5.
19 # let scalar n { re = r; im = i } = { re = n *. r; im = n *. i };; val scalar : float - > complex - > complex = <fun> # scalar 2.0 { re = 5.0; im = 3.0 };; - : complex = {re = 10.; im = 6.} match with
20 type = 1 of 1 2 of 2 of 1: bool # type mybool = True False;; type mybool = True False 2: # type value = Int of int Bool of bool;; type value = Int of int Bool of bool
21 1: mybool # True;; - : mybool = True # False;; - : mybool = False 2: # Int 156;; - : value = Int 156 # Bool false;; - : value = Bool false
22 : # let not = function True - > False False - > True;; val not : mybool - > mybool = <fun> # not True;; - : mybool = False # not False;; - : mybool = True # let print_value = function Int i - > print_int i Bool b - > print_string (if b then "true" else "false") val print_value : value - > unit = <fun>
23 : inttree # type inttree = Leaf Node of int * inttree * inttree;; type inttree = Leaf Node of int * inttree * inttree inttree # Leaf;; - : inttree = Leaf # Node (1, Leaf, Leaf);; - : inttree = Node (1, Leaf, Leaf)
24 : # let rec sum_tree = function Leaf - > 0 Node (v, t1, t2) - > v + sum_tree t1 + sum_tree t2;; val sum_tree : inttree - > int = <fun> # sum_tree (Node(4, Node(5, Leaf, Leaf), Leaf));; - : int = 9
25 : and # type list = Nil Cons of int * list' and list' = Nil' Cons' of bool * list;; type list = Nil Cons of int * list' and list' = Nil' Cons' of bool * list
26 Polymorphic Data Type
27 type inttree = Leaf Node of int * inttree * inttree type booltree = Leaf Node of bool * booltree * booltree type ibtree = Leaf Node of (int * bool) * ibtree * ibtree
28 : tree[α] = Leaf Node of α * tree[α] * tree[α] tree[int] = Leaf Node of int * tree[int] * tree[int] tree[bool] = Leaf Node of bool * tree[bool] * tree[bool]
29 : # type 'a tree = Leaf Node of 'a * 'a tree * 'a tree;; type 'a tree = Leaf Node of 'a * 'a tree * 'a tree # Node (5, Leaf, Leaf);; - : int tree = Node (5, Leaf, Leaf) # Node (true, Leaf, Leaf);; - : bool tree = Node (true, Leaf, Leaf) # Leaf;; - : 'a tree = Leaf
30 type 'a option = None Some of 'a type 'a list = [] (::) of 'a * 'a list
31 # let div x y = if y = 0 then None else Some (x / y);; val div : int - > int - > int option = <fun> # div 8 2;; - : int option = Some 4 # div 8 0;; - : int option = None
32 # let rec height = function Leaf - > 0 Node (_, t1, t2) - > 1 + max (height t1) (height t2);; val height : 'a tree - > int = <fun>
33 # type ('a, 'b) either = L of 'a R of 'b;; type ('a, 'b) either = L of 'a R of 'b # L 1;; - : (int, 'a) either = L 1
34 ExcepZons
35 ? 0 etc. C++ Java
36 ? (* : raise ( ) *) # let div_e x y = if y = 0 then raise Division_by_zero else x / y;; val div_e : int - > int - > int = <fun> # div_e 8 2;; - : int = 4 # div_e 8 0;; Exception: Division_by_zero.
37 ? (* : try with 1 - > > 2 *) # let div x y = try Some (div_e x y) with Division_by_zero - > None;; val div : int - > int - > int option = <fun> # div 8 2;; - : int option = Some 4 # div 8 0;; - : int option = None
38 : exception of # exception My_exception;; exception My_exception # My_exception;; - : exn = My_exception # raise My_exception;; Exception: My_exception.
39 # exception My_int_exception of int;; exception My_int_exception of int # let isprime n = if n <= 0 then raise (My_int_exception n) else ;; val isprime : int - > bool = <fun>
40 ? # exception My_exception;; # exception My_int_exception of int;; # exception My_bool_exception of bool;; # let foo x = try bar x with My_exception - > None My_int_exception i - > Some i with My_bool_exception _ - > None;;
41 try with try try raise My_exception with My_int_exception i - > Some i with My_exception - > None with with
42 Programs with Side Effects
43 ?
44 Unit () : # ();; - : unit = ()
45 Unit # print_string;; - : string - > unit = <fun> # print_string "Foo\n";; Foo - : unit = () # read_line;; - : unit - > string = <fun> # let s = read_line ();; Bar val s : string = "Bar"
46 mutable # type bank_account = { name : string; mutable balance : int };; type bank_account = { name : string; mutable balance : int; }
47 <- (* 1. <- 2 *) # let a = { name = "maeda"; balance = };; val a : bank_account = {name = "maeda"; balance = 10000} # a.balance;; - : int = # a.balance < ;; - : unit = () # a.balance;; - : int = unit
48 (Reference) C Scheme type 'a ref = { mutable contents : 'a } ( )
49 # let r = ref 0;; val r : int ref = {contents = 0} #!r;;! - : int = 0 # r := 1;; - : unit = () #!r;; - : int = 1 ref :=
50 : : 1 ; 2 ; ; n # let t = (print_string "> "; read_line ());; > foo val t : string = "foo"
51 if else else () (* if then 1 if then 1 else () *) # let r = ref 0;; val r : int ref = {contents = 0} # if!r = 0 then r := 3;; - : unit = () : # r := if!r = 0 then 3;; This expression has type int but is here used with type unit
52 ( ) : # let r1 = ref [];; val r1 : 'a list ref = { contents = [] } # let sum () = fold_right (+) (!r1) 0;; val sum : unit - > int = <fun> # r1 := [true];; - : unit = () # sum ();;??
53 O'Caml # let r1 = ref [];; val r1 : '_a list ref = { contents = [] } # let sum () = fold_right (+) (!r1) 0;; val sum : unit - > int = <fun> # r1;; - : int list ref = { contents = [] } [true];; '_a int This expression has type bool but is here used with type int
54 ! f unit 'a 'a f () 'a 'a? let f () = let r = ref None in fun x - > let old = match!r with None - > x Some y - > y in r := Some x; old
55 OCaml Value restriczon: OK: fun NG: let etc... # (fun () x - > x) ();; - : '_a - > '_a = <fun>
56 Value restriczon # let f = List.map (fun x - > (x, x));; (* ) val f : '_a list - > ('_a * '_a) list = <fun> : η ( ) # let f xs = List.map (fun x - > (x, x)) xs;; val f : 'a list - > ('a * 'a) list = <fun>
57 Value restriczon Value restriczon Andrew K. Wright, Maghias Felleisen. A SyntacZc Approach to Type Soundness. Value restriczon O'Caml Jacques Garrigue. Relaxing Value RestricZon. OCaml 3.07
58 Google Google Scholar ACM Digital Library ( hgp:// ) ACM CiteSeer.IST ( hgp://citeseerx.ist.psu.edu ) Google Web
59 2 ( ) : 5/3 13:00
60 1 (5 ) ('a tree) (preorder) (inorder) (postorder) type 'a tree = Leaf Node of 'a * 'a tree * 'a tree
61 ( ) 1 # preorder (Node(7, Node(5, Node(4, Leaf, Leaf), Leaf), Node(9, Leaf, Node(15, Leaf, Leaf)))) - : int list = [7; 5; 4; 9; 15]
62 ( ) 1 # inorder (Node(7, Node(5, Node(4, Leaf, Leaf), Leaf), Node(9, Leaf, Node(15, Leaf, Leaf)))) - : int list = [4; 5; 7; 9; 15]
63 ( ) 1 # postorder (Node(7, Node(5, Node(4, Leaf, Leaf), Leaf), Node(9, Leaf, Node(15, Leaf, Leaf)))) - : int list = [4; 5; 15; 9; 7]
64 2 (5 ) type 'a stack = { mutable s : 'a list } val new_stack : unit - > 'a stack (* stack ) val push : 'a stack - > 'a - > unit (* push ) val pop : 'a stack - > 'a (* pop stack Empty_stack )
65 ( ) 2 # let s = new_stack ();; val s : '_a stack = {s = []} # push s 1;; - unit = () # push s 2;; - unit = () # pop s;; - : int = 2 # pop s;; - : int = 1 # pop s;; Exception : Empty_stack.
66 3 (5 ) 2 let s = new_stack () val s : '_a stack = {s = []} a. 'a stack '_a stack b. '_a stack 'a stack
67 4 (10 ) O(1) type 'a queue =??? val new_queue : unit - > 'a queue (* queue ) val enqueue : 'a queue - > 'a - > unit (* ) val dequeue : 'a queue - > 'a (* queue Empty_queue )
68 5 (10 ) f f fix f fix f f (f (f (f (f (f (f...)))))) # let fib = fix (fun g n - > if n <= 2 then 1 else g (n - 1) + g (n - 2));; val fib : int - > int = <fun> # fib 10;; - : int = 55 let rec
69 6 (10 ) Bool int E V (bool ) V (int ) E V E E + E E E * E E E && E E E = E E E - E E E / E E E E E if E then E else E
70 6 ( ) V value type value = Bool_value of bool Int_value of int E expr type expr = Const of value Add of expr * expr
71 6 ( ) (if ((false = true) (2 = 2)) && (3 = 5) then (3 + 5) 9 else 3 * ( )) + 42 And If Add Or Eq Eq Eq Add Sub Mul Add false true
72 7 (15 ) 6 expr eval : expr - > value Bool int Eval_error
73 8 (20 ) false_t, not_t, and_t, or_t type false_t = B of false_t type 'a not_t = 'a - > false_t type ('a, 'b) and_t = 'a * 'b type ('a, 'b) or_t = L of 'a R of 'b 1 7 let rec let rec?
74 ( ) 8 1. ('a - > 'b) - > ('b - > 'c) - > ('a - > 'c) 2. ('a, ('b, 'c) and_t) or_t - > (('a, 'b) or_t, ('a, 'c) or_t) and_t 3. (('a, 'b) or_t, ('a, 'c) or_t) and_t - > ('a, ('b, 'c) and_t) or_t 4. ('a, 'a not_t) or_t 5. ('a, 'a not_t) and_t 6. 'a - > 'a not_t not_t 7. 'a not_t not_t - > 'a
75 9 (20 ) O(1) type 'a queue =??? val new_queue : unit - > 'a queue (* queue ) val enqueue : 'a queue - > 'a - > 'a queue (* ) val dequeue : 'a queue - > 'a * 'a queue (* queue Empty_queue )
# 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
Jacques 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)
# 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)
ML 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
: 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
fp.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]
「計算と論理」 Software Foundations その4
Software Foundations 4 [email protected] 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 : (
haskell.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]
コンパイラ演習 第 7 回
コンパイラ演習 第 7 回 (2010/11/18) 秋山茂樹池尻拓朗前田俊行鈴木友博渡邊裕貴潮田資秀小酒井隆広山下諒蔵佐藤春旗大山恵弘佐藤秀明住井英二郎 今日の内容 Type Polymorphism ( 型多相性 ) の実現について Polymorphism 大きく分けて 3 種類ある Parametric polymorphism Subtyping polymorphism Ad-hoc polymorphism
「計算と論理」 Software Foundations その3
Software Foundations 3 [email protected] October 24, 2017 ( ) ( 3) October 24, 2017 1 / 47 Lists.v ( ) ( ) ( ) ( 3) October 24, 2017 2 / 47 ( ) Inductive natprod : Type := pair : nat nat natprod.
ML 演習 第 4 回
ML 演習第 4 回 おおいわ Mar 6, 2003 今回の内容 補足 Ocaml のモジュールシステム structure signature functor Ocaml コンパイラの利用 2 識別子について 利用可能文字 先頭文字 : A~Z, a~z, _ ( 小文字扱い ) 2 文字目以降 : A~Z, a~z, 0~9, _, 先頭の文字の case で 2 つに区別 小文字 : 変数,
Terminal ocaml $ ocaml Objective Caml version # 1+2;;<ret> # 1+2;; - : int = 3 ;; OCaml <ret> - : int = 3 OC
Jacques Garrigue, 2013 8 8-9 OCaml 1 OCaml OCaml ML ML Haskell ML Haskell ML 70 Edinburgh LCF Robin Milner 1 Caml ML OCaml OCaml OCaml-Nagoya OCaml 2007 in OCaml 2007 (Computer Science Library 3) 2007
cpp1.dvi
2017 c 1 C++ (1) C C++, C++, C 11, 12 13 (1) 14 (2) 11 1 n C++ //, [List 11] 1: #include // C 2: 3: int main(void) { 4: std::cout
monad.gby
2012.11.18 1 1 2 2 DSL 3 4 Q) A) 5 Q) A) 6 7 8 Haskell 9 10 Parser data Parser a = Parser (String -> [(a,string)]) Parser pwrap :: a -> Parser a pwrap v = Parser $ \inp -> [(v,inp)] Parser pbind :: Parser
つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
Ruby Scheme 2013-04-16 ( )! SICP *1 ;-) SchemeR SICP MIT * 1 Structure and Interpretaion of Computer Programs 2nd ed.: 2 i SchemeR Ruby Ruby Ruby Ruby & 3.0 Ruby ii https://github.com/ichusrlocalbin/scheme_in_ruby
Emacs 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
presen.gby
[email protected] 1 2 Paul Graham 3 Andrew Hunt and David Thomas 4 5 Java 6 Java Java Java 3 7 Haskell Scala Scala 8 9 Java Java Dean Wampler AWT ActionListener public interface ActionListener extends EventListener
プログラミング言語 8 字句解析器(lexer)と構文解析器(parser)
8 (lexer) (parser) 1 / 73 (lexer, tokenizer) (parser) Web Page (HTML XML) CSV, SVG,...... config file... ( )! 2 / 73 1 1 OCaml : ocamllex ocamlyacc 2 Python : ply 2! 3 / 73 ( ) 字句解析器 構文解析器 ご注文はうさぎさんですか?
Condition DAQ condition condition 2 3 XML key value
Condition DAQ condition 2009 6 10 2009 7 2 2009 7 3 2010 8 3 1 2 2 condition 2 3 XML key value 3 4 4 4.1............................. 5 4.2...................... 5 5 6 6 Makefile 7 7 9 7.1 Condition.h.............................
untitled
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] { /*
ohp03.dvi
19 3 ( ) 2019.4.20 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void int main(int argc, char *argv[]) {... 2 (2) argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0
ALG2012-A.ppt
21279 ([email protected]) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/212/index.html (, )ε m = n C2 = n ( n 1) / 2 m = n ( n 1) 1 11 11 111 11 111 111 1111 1 1 11 1 11 11 111 4-dimentional
r07.dvi
19 7 ( ) 2019.4.20 1 1.1 (data structure ( (dynamic data structure 1 malloc C free C (garbage collection GC C GC(conservative GC 2 1.2 data next p 3 5 7 9 p 3 5 7 9 p 3 5 7 9 1 1: (single linked list 1
r03.dvi
19 ( ) 019.4.0 CS 1 (comand line arguments) Unix./a.out aa bbb ccc ( ) C main void... argc argv argc ( ) argv (C char ) ( 1) argc 4 argv NULL. / a. o u t \0 a a \0 b b b \0 c c c \0 1: // argdemo1.c ---
ohp07.dvi
19 7 ( ) 2019.4.20 1 (data structure) ( ) (dynamic data structure) 1 malloc C free 1 (static data structure) 2 (2) C (garbage collection GC) C GC(conservative GC) 2 2 conservative GC 3 data next p 3 5
shift/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 (..
[email protected] [email protected] 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
1. 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
JavaScript の使い方
JavaScript Release10.5 JavaScript NXJ JavaScript JavaScript JavaScript 2 JavaScript JavaScript JavaScript NXJ JavaScript 1: JavaScript 2: JavaScript 3: JavaScript 4: 1 1: JavaScript JavaScript NXJ Static
untitled
21174 ([email protected]) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/211/index.html tech.ac.jp/k1sakai/lecture/alg/211/index.html html (, )ε m = n C2 = n ( n 1) / 2 m = n ( ( n
パズルをSugar制約ソルバーで解く
Sugar 1 2 3 1 CSPSAT 2008 8 21 Sugar 1 2 3 Sugar Sugar (CSP) (SAT ) (encode) SAT SAT order encoding direct encoding support encoding http://bachistckobe-uacjp/sugar/ Web Sugar 1 2 3 Sugar SAT (COP) MAX-CSP
1. 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)
ex01.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
e ::= c op(e 1,..., e n ) if e 1 then e 2 else e 3 let x = e 1 in e 2 x let rec x y 1... y n = e 1 in e 2 e e 1... e n (e 1,..., e n ) let (x 1,..., x
e ::= c op(e 1,..., e n ) if e 1 then e 2 else e 3 let x = e 1 in e 2 x let rec x y 1... y n = e 1 in e 2 e e 1... e n (e 1,..., e n ) let (x 1,..., x n ) = e 1 in e 2 Array.create e 1 e 2 e 1.(e 2 ) e
Java演習(4) -- 変数と型 --
50 20 20 5 (20, 20) O 50 100 150 200 250 300 350 x (reserved 50 100 y 50 20 20 5 (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics; (reserved public class Blocks1 extends
Dive into Algebraic Effects
Dive into Algebraic Effects びしょ じょ ML Days #2 September 16, 2018 やること Algebraic Effects を伝道 Algebraic Effects is 何 Algebraic Effects が使える言語 Algebraic Effects の活用事例 研究のご紹介先日 JSSST でポスター発表した内容を紹介シマス 目次 自己紹介
VDM-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
0 1 1 @master q 3 1.1.......................................... 3 1.2....................................... 4 1.3....................................
1 0!? Q.? A. Q. B. Q.? A.! 2 10 6 Scheme 80! λ 81!? λ ( ) 82!? λ ( ) 83!? λ 4 3! λ 0 1 1 @master q 3 1.1.......................................... 3 1.2....................................... 4 1.3............................................
Python Speed Learning
Python Speed Learning 1 / 76 Python 2 1 $ python 1 >>> 1 + 2 2 3 2 / 76 print : 1 print : ( ) 3 / 76 print : 1 print 1 2 print hello 3 print 1+2 4 print 7/3 5 print abs(-5*4) 4 / 76 print : 1 print 1 2
listings-ext
(6) Python (2) ( ) [email protected] 5 Python (2) 1 5.1 (statement)........................... 1 5.2 (scope)......................... 11 5.3 (subroutine).................... 14 5 Python (2) Python 5.1
untitled
C -1 - -2 - concept lecture keywords FILE, fopen, fclose, fscanf, fprintf, EOF, r w a, typedef gifts.dat Yt JZK-3 Jizake tsumeawase 45 BSP-15 Body soap set 3 BT-2 Bath towel set 25 TEA-2 Koutya
syspro-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
K227 Java 2
1 K227 Java 2 3 4 5 6 Java 7 class Sample1 { public static void main (String args[]) { System.out.println( Java! ); } } 8 > javac Sample1.java 9 10 > java Sample1 Java 11 12 13 http://java.sun.com/j2se/1.5.0/ja/download.html
ex01.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
yacc.dvi
2017 c 8 Yacc Mini-C C/C++, yacc, Mini-C, run,, Mini-C 81 Yacc Yacc, 1, 2 ( ), while ::= "while" "(" ")" while yacc 1: st while : lex KW WHILE lex LPAREN expression lex RPAREN statement 2: 3: $$ = new
Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS Pascal
Pascal Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS 2010 10 1 Pascal 2 1.1.......................... 2 1.2.................. 2 1.3........................ 3 2 4 2.1................................
untitled
II yacc 005 : 1, 1 1 1 %{ int lineno=0; 3 int wordno=0; 4 int charno=0; 5 6 %} 7 8 %% 9 [ \t]+ { charno+=strlen(yytext); } 10 "\n" { lineno++; charno++; } 11 [^ \t\n]+ { wordno++; charno+=strlen(yytext);}
Excel97関数編
Excel97 SUM Microsoft Excel 97... 1... 1... 1... 2... 3... 3... 4... 5... 6... 6... 7 SUM... 8... 11 Microsoft Excel 97 AVERAGE MIN MAX SUM IF 2 RANK TODAY ROUND COUNT INT VLOOKUP 1/15 Excel A B C A B
HARK Designer Documentation 0.5.0 HARK support team 2013 08 13 Contents 1 3 2 5 2.1.......................................... 5 2.2.............................................. 5 2.3 1: HARK Designer.................................
f(x) x S (optimal solution) f(x ) (optimal value) f(x) (1) 3 GLPK glpsol -m -d -m glpsol -h -m -d -o -y --simplex ( ) --interior --min --max --check -
GLPK by GLPK http://mukun mmg.at.infoseek.co.jp/mmg/glpk/ 17 7 5 : update 1 GLPK GNU Linear Programming Kit GNU LP/MIP ILOG AMPL(A Mathematical Programming Language) 1. 2. 3. 2 (optimization problem) X
自己紹介 情報科学の研究をしています 専門はプログラミング言語とか型理論とか 研究のひとつは Java の改良ですが Java でプログラムは書きません ( けません ) ML 歴 16 年 OCaml 歴は 11 年くらい の著者です
ML 型推論の光と影 @ 平成廿一年東都大駱駝会 京都大学五十嵐淳 自己紹介 情報科学の研究をしています 専門はプログラミング言語とか型理論とか 研究のひとつは Java の改良ですが Java でプログラムは書きません ( けません ) ML 歴 16 年 OCaml 歴は 11 年くらい の著者です いきなり鶴亀算 OCaml プログラマとラクダが合わせて 7 匹いる 足の数が合わせて 20 本である時
94 expression True False expression FalseMSDN IsNumber WorksheetFunctionIsNumberexpression expression True Office support.office.com/ja-jp/ S
Excel VBA a Excel VBA VBA IsNumeric IsNumber SpecialCells SpecialCells MSDNMicrosoft Developer NetworkIsNumeric IsNumber SpecialCells IsNumeric VBA IsNumericexpression SpecialCells 94 expression True False
19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;
19 3!!...... (+) (>) (++) (+=) for while 3.1!! 3.1.1 50 20 20 5 (20, 20) 3.1.1 (1)(Blocks1.java) public class Blocks1 extends JApplet { public void paint(graphics g){ 5 g.drawrect( 20, 20, 50, 20); g.drawrect(
