2

Size: px
Start display at page:

Download "2"

Transcription

1 OCaml Web HTML5 IT PPL 2012 Web ( ) 14:30-17:30

2 2

3 Web JavaScript HTML5 3

4 Web JavaScript CoffeeScript Dart Haxe S2JS (Scala) JSX Ocamljs, Js_of_ocaml (OCaml) 4

5 OCaml 5

6 6

7 js_of_ocaml 7

8 OCaml Web 8

9 OCaml OCaml ocaml / ;; 2 let x = ;; int 300. *. 1.05;; float ( ) print_endline "Hello,World!";; ( VM alias ocaml= rlwrap ocaml JavaScript 9

10 Js_of_ocaml open Dom_html;; let alert msg = window##alert(msg);; alert (Js.string Hello,World! );; alert(js.to_string (jsnew Js.date_now())##toString());; 10

11 OCaml JavaScript HTML DOM Dom_html document window Dom_html.document Dom_html.window open Dom_html Dom_html. JavaScript (js_of_ocaml ) obj##meth(arg1,arg2, ) window##alert(msg) window.alert(msg) js_of_ocaml JavaScript jsnew constr (arg1,arg2, ) 11

12 JavaScript OCaml OCaml string JavaScript js_string t Js.string : string js_string t string js_string t Js.to_string : js_string t string Js.string let js = Js.string;; js ABC 12

13 OCaml let let x = ;; let triple x = x * 3;; x 20 triple let x = ;; let x = "Hello,World!";; OCaml 13

14 OCaml {name="imai";age=100};; person.name;; fun x -> x + 1;; print_endline "Hello";; let pi = 3.14 in pi *. r *. r ;; if password="ppl" then Ok else Ng;; match exp with Orange -> "I love!" Lemon -> "I hate!";; function [] -> 0 x::xs -> x + sum xs;; try List.assoc key lst with Not_found -> "default";; raise Not_found;; let if ( exp ) begin exp end begin/end if password="ppl" then begin end else begin begin match exp with end Orange -> "I love!" Lemon -> "I hate!";; end; print_endline "Done" 14

15 (ref ) # let x = ref 1;; val x : int ref = {contents=1} # x := 2012;; - : unit = () #!x;; (dereference) - : int = 2012 # let x = print_endline "Hello,World!";; Hello,World! val x : unit = () # let x = print_endline "Hello,World!"; x 1 x ;; Hello,World! val x : float =

16 OCaml.ml /.mli ( ).cmo /.cmi.cma a.ml ocamlc -c a.cmo b.ml ocamlc -c b.cmo ocamlc -o main.exe main.exe 16.cmx,.cmxa

17 js_of_ocaml Js Dom, Dom_html, Dom_events, Form DOM / Web Lwt, Lwt_js XmlHttpRequest HTTP Lwt File HTML5 local storage Json, Deriving_Json JSON JSON Firebug Firebug Regexp JavaScript Typed_array WebGL JavaScript Url Url / / WebGL 3D 17

18 OCaml Js_of_ocaml OCaml structural polymorphism 18

19 OCaml let hello_obj = object method hello = print_endline "Hello, World" method add x y = x + y end;; : hello_obj#hello;; print_int (hello_obj#add 1 2);; js_of_ocaml OCaml JavaScript JavaScript 19

20 object method hello = print_endline "Hello, World" method add x y = x + y end < add : int -> int -> int; hello : unit > Java,C# 20

21 OCaml class hello_cls = object method hello = print_endline "Hello, World" end;; hello_cls hello_cls new let hello_obj : hello_cls = new hello_cls in hello_obj#hello hello_cls <hello : unit> js_of_ocaml class type Java interface 21

22 class type hello_cls_typ = object method hello : unit end;; new new hello_cls_typ 22

23 object method hello = "Hello" end <hello : string> (x : <hello : string>) class hello_cls = object method hello = "hello" end (x : hello_cls) new hello_cls class type hello_typ = object method hello : string end (x : hello_typ) new hello_typ 23

24 FAQ Q. A. type hello_typ = <hello : string> class type hello_typ = object method hello : string end #hello_typ type hello_typ = object end 24

25 t <: s s t / t s 1. t s 2. s t s = <m_1 : t_1; m_2 : t_2; ; m_k : t_k > <: <: <: t = <m_1 : t_1'; m_2 : t_2'; ; m_k : t_k'; ; m_n : t_n' > <: 25

26 OCaml #- method appendchild : node -> unit, img : imageelement elm##appendchild(img), node imageelement node element elm##appendchild(img :> node) Ok imageelement #- 26

27 #-,row-polymorphism node method appendchild : node -> unit Dom.appendChild : #node -> #node -> unit Dom.appendChild elm img #- <hello:string;..> (.. ) #hello_typ <hello:string;..> hello_typ <hello:string> 27

28 .. obj hello obj#hello # let say_hello obj = print_endline obj#hello;; val say_hello : < hello : string;.. > -> unit = <fun> hello OCaml JavaScript 28

29 JavaScript JavaScript OCaml 'a Js.t 'a Dom.element Js.t Js.js_string Js.t Dom.element DOM class element = object inherit node method tagname : js_string t readonly_prop method getattribute : js_string t -> js_string t opt meth method setattribute : js_string t -> js_string t -> unit meth method removeattribute : js_string t -> unit meth method hasattribute : js_string t -> bool t meth method getelementsbytagname : js_string t -> element nodelist t meth method attributes : attr namednodemap t readonly_prop end 29 Js.js_string JavaScript class type js_string = object method tostring : js_string t meth method valueof : js_string t meth method charat : int -> js_string t met method charcodeat : int -> float t met method concat : js_string t -> js_stri method concat_2 : js_string t -> js_st method concat_3 : js_string t -> js_string t -> js_str method concat_4 : js_string t -> js_string t -> js_str js_string t meth method indexof : js_string t -> int me method indexof_from : js_string t -> i method lastindexof : js_string t -> in

30 variance Js.t ( ) type +'a t Js Js.t <: node element <: node Js.t element Js.t <: imageelement <: imageelement Js.t 30

31 JavaScript JavaScript OCaml interface Element : Node { readonly attribute DOMString tagname; DOMString getattribute(in DOMString name); void setattribute(in DOMString name, in DOMString value) raises(domexception); void removeattribute(in DOMString name)... W3C DOM Element (IDL) class type element = object inherit node method tagname : js_string t readonly_prop method getattribute : js_string t -> js_string t opt meth method setattribute : js_string t -> js_string t -> unit meth method removeattribute : js_string t -> unit meth... Dom.element DOM 31

32 interface Element : Node { readonly attribute DOMString tagname; DOMString getattribute(in DOMString name); void setattribute(in DOMString name, in DOMString value) raises(domexception); void removeattribute(in DOMString name)... JS / class type element = object inherit node method tagname : js_string t readonly_prop method getattribute : js_string t -> js_string t opt meth method setattribute : js_string t -> js_string t -> unit meth method removeattribute : js_string t -> unit meth... 32

33 type +'a meth obj##meth(args) type 'a readonly_prop type 'a writeonly_prop type 'a prop obj##prop obj##prop <- exp obj##prop, obj##prop <- exp 33

34 JavaScript JavaScript 'a constr 'a constr val regexp : (js_string t -> regexp t) constr jsnew regexp (js"[a-za-z0-9_]*") 34

35 null undefined null opt class type document = object method getelementbyid : js_string t -> element t opt meth undefined optdef class type window = object method localstorage : storage t optdef readonly_prop Opt.get : 'a opt -> (unit -> 'a) -> 'a Optdef.get : 'a optdef -> (unit -> 'a) -> 'a Opt.get (Dom_html.document##getElementById(js"foobar")) (fun () -> failwith "element foobar not found") Optdef.get (Dom_html.window##localStorage) (fun () -> failwith "localstorage is not supported") 35

36 Unsafe 36

1. VM ~/ocaml cd ~/ocaml git clone https://github.com/keigoi/material.git! /home/pplss2012/ocaml material 2. ~/ocaml/material fixinstall.sh cd ~/ocaml

1. VM ~/ocaml cd ~/ocaml git clone https://github.com/keigoi/material.git! /home/pplss2012/ocaml material 2. ~/ocaml/material fixinstall.sh cd ~/ocaml OCaml Web HTML5 IT (@keigoi) PPL 2012 Web 2012 8 21 ( ) 14:30-17:30 1. VM ~/ocaml cd ~/ocaml git clone https://github.com/keigoi/material.git! /home/pplss2012/ocaml material 2. ~/ocaml/material fixinstall.sh

More information

Parametric Polymorphism

Parametric 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 information

Objective Caml 3.12 Jacques Garrigue ( ) with Alain Frisch (Lexifi), OCaml developper team (INRIA)

Objective Caml 3.12 Jacques Garrigue ( )   with Alain Frisch (Lexifi), OCaml developper team (INRIA) Objective Caml 3.12 Jacques Garrigue ( ) http://www.math.nagoya-u.ac.jp/~garrigue/ with Alain Frisch (Lexifi), OCaml developper team (INRIA) Jacques Garrigue Modules in Objective Caml 3.12 1 Objective

More information

プログラミング言語 8 字句解析器(lexer)と構文解析器(parser)

プログラミング言語 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 ( ) 字句解析器 構文解析器 ご注文はうさぎさんですか?

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

# 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 information

WebGL WebGL DOM Kageyama (Kobe Univ.) Visualization / 39

WebGL WebGL DOM Kageyama (Kobe Univ.) Visualization / 39 WebGL DOM API 2014.05.27 X021 2014 Kageyama (Kobe Univ.) Visualization 2014.05.27 1 / 39 WebGL WebGL DOM Kageyama (Kobe Univ.) Visualization 2014.05.27 2 / 39 WebGL WebGL Kageyama (Kobe Univ.) Visualization

More information

WebGL *1 DOM API *1 X LR301 Kageyama (Kobe Univ.) Visualization / 37

WebGL *1 DOM API *1 X LR301 Kageyama (Kobe Univ.) Visualization / 37 WebGL *1 DOM API 2013.05.21 *1 X021 2013 LR301 Kageyama (Kobe Univ.) Visualization 2013.05.21 1 / 37 WebGL WebGL DOM References Kageyama (Kobe Univ.) Visualization 2013.05.21 2 / 37 WebGL WebGL Kageyama

More information

6/ Kageyama (Kobe Univ.) / 39

6/ Kageyama (Kobe Univ.) / 39 DOM API 2015 2015.06.02 Kageyama (Kobe Univ.) 2015.06.02 1 / 39 6/9 1 6 9 2 Kageyama (Kobe Univ.) 2015.06.02 2 / 39 WebGL WebGL Kageyama (Kobe Univ.) 2015.06.02 3 / 39 WebGL canvas.getcontext() WebGLRenderingContext

More information

jssst-ocaml.mgp

jssst-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 information

ex01.dvi

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

More information

ex01.dvi

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

More information

Jacques Garrigue

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)

More information

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV tutimura@mist.i.u-tokyo.ac.jp kaneko@ipl.t.u-tokyo.ac.jp http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/sem3/ 2002 12 11 p.1/33 10/16 1. 10/23 2. 10/30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20

More information

ML Edinburgh LCF ML Curry-Howard ML ( ) ( ) ( ) ( ) 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

More information

2

2 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 information

# let st1 = {name = "Taro Yamada"; id = };; val st1 : student = {name="taro Yamada"; id=123456} { 1 = 1 ;...; n = n } # let string_of_student {n

# 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 information

ML 演習 第 4 回

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 つに区別 小文字 : 変数,

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

: 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 information

haskell.gby

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]

More information

Condition DAQ condition condition 2 3 XML key value

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.............................

More information

ML λ λ 1 λ 1.1 λ λ λ e (λ ) ::= x ( ) λx.e (λ ) e 1 e 2 ( ) ML λx.e Objective Caml fun x -> e x e let 1

ML λ λ 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 information

untitled

untitled PPL 2006 MinCaml (myth) vs. vs. vs. Haskell (www.haskell.org) ML (www.standardml.org, caml.inria.fr) Standard ML (SML), Objective Caml (OCaml) Scheme (www.schemers.org) low level GCC C GCJ Java

More information

1 ( : 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

1 ( : 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 information

2. 2 (LAN) Web 7 2 DBMS Java Applet 2.1 Java RDBMS Java 1 Lisp S S Common Lisp Java DBMS 2.2 DBMS RDBMS(Oracle) Java BLOB(Binary Large OBject) RDBMS R

2. 2 (LAN) Web 7 2 DBMS Java Applet 2.1 Java RDBMS Java 1 Lisp S S Common Lisp Java DBMS 2.2 DBMS RDBMS(Oracle) Java BLOB(Binary Large OBject) RDBMS R 1 Lisp - - 2-4-3 ( ) Common Lisp 1. Common Lisp DBMS Common Lisp OODBMS 2. CORBA 3. Java Applet 1. 2. 1 1.1 () () AD [1] 1.2 2. 2 (LAN) Web 7 2 DBMS Java Applet 2.1 Java RDBMS Java 1 Lisp S S Common Lisp

More information

3360 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 The

More information

ML 演習 第 4 回

ML 演習 第 4 回 ML 演習第 4 回 佐藤春旗, 山下諒蔵, 前田俊行 2006/06/20 ICFP Programming Contest 過去の O'Caml プログラムの実績 1998: 2 位 (ENS Camlist, France) 1999: 1 位 (Camls R Us, O'Caml 作者グループ ) 2000: 1 位 (PLClub, U-Penn, 米澤研住井, 細谷参加 ) 2 位 (Camls

More information

fp.gby

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]

More information

3 3.1 algebraic datatype data k = 1 1,1... 1,n1 2 2,1... 2,n2... m m,1... m,nm 1 m m m,1,..., m,nm m 1, 2,..., k 1 data Foo x y = Alice x [y] B

3 3.1 algebraic datatype data k = 1 1,1... 1,n1 2 2,1... 2,n2... m m,1... m,nm 1 m m m,1,..., m,nm m 1, 2,..., k 1 data Foo x y = Alice x [y] B 3 3.1 algebraic datatype data 1 2... k = 1 1,1... 1,n1 2 2,1... 2,n2... m m,1... m,nm 1 m m m,1,..., m,nm m 1, 2,..., k 1 data Foo x y = Alice x [y] Bob String y Charlie Foo Double Integer Alice 3.14 [1,2],

More information

untitled

untitled JavaScript HP JavaScript JavaScript Web JavaScript Web JavaScript JavaScript JavaScript HTML HTML HTML JavaScript 1. JavaScript ON/OFF 2. JavaScript 3. 4. 5. 6. 7. 8. 9. 10. if 11. if 12. switch 13. 14.

More information

PowerPoint Presentation

PowerPoint Presentation UML 2004 7 9 10 ... OOP UML 10 Copyright 2004 Akira HIRASAWA all rights reserved. 2 1. 2. 3. 4. UML 5. Copyright 2004 Akira HIRASAWA all rights reserved. 3 1..... Copyright 2004 Akira HIRASAWA all rights

More information

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ 8 : Web Same Origin Policy : XML :, XML http://www.w3.org/xml/ http://www.w3.org/tr/dom-level-3-core 1 / 31 xml.html: XML xpath-test.html: XPATH valid-test.html: XML (IE ) xslt-test.html: JS XSLT xslt-test.xml:

More information

K227 Java 2

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

More information

橡SPA2000.PDF

橡SPA2000.PDF XSLT ( ) d-oka@is.s.u-tokyo.ac.jp ( ) hagiya@is.s.u-tokyo.ac.jp XSLT(eXtensible Stylesheet Language Transformations) XML XML XSLT XSLT XML XSLT XML XSLT XML XML XPath XML XSLT XPath XML XSLT,XPath 1 XSLT([6])

More information

JavaScript の使い方

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

More information

Dive into Algebraic Effects

Dive into Algebraic Effects Dive into Algebraic Effects びしょ じょ ML Days #2 September 16, 2018 やること Algebraic Effects を伝道 Algebraic Effects is 何 Algebraic Effects が使える言語 Algebraic Effects の活用事例 研究のご紹介先日 JSSST でポスター発表した内容を紹介シマス 目次 自己紹介

More information

新・明解Java入門

新・明解Java入門 537,... 224,... 224,... 32, 35,... 188, 216, 312 -... 38 -... 38 --... 102 --... 103 -=... 111 -classpath... 379 '... 106, 474!... 57, 97!=... 56 "... 14, 476 %... 38 %=... 111 &... 240, 247 &&... 66,

More information

コンパイラ演習 第 7 回

コンパイラ演習 第 7 回 コンパイラ演習 第 7 回 (2010/11/18) 秋山茂樹池尻拓朗前田俊行鈴木友博渡邊裕貴潮田資秀小酒井隆広山下諒蔵佐藤春旗大山恵弘佐藤秀明住井英二郎 今日の内容 Type Polymorphism ( 型多相性 ) の実現について Polymorphism 大きく分けて 3 種類ある Parametric polymorphism Subtyping polymorphism Ad-hoc polymorphism

More information

presen.gby

presen.gby kazu@iij.ad.jp 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

More information

Copyright c 2006 Zhenjiang Hu, All Right Reserved.

Copyright c 2006 Zhenjiang Hu, All Right Reserved. 1 2006 Copyright c 2006 Zhenjiang Hu, All Right Reserved. 2 ( ) 3 (T 1, T 2 ) T 1 T 2 (17.3, 3) :: (Float, Int) (3, 6) :: (Int, Int) (True, (+)) :: (Bool, Int Int Int) 4 (, ) (, ) :: a b (a, b) (,) x y

More information

VB.NETコーディング標準

VB.NETコーディング標準 (C) Copyright 2002 Java ( ) VB.NET C# AS-IS extremeprogramming-jp@objectclub.esm.co.jp bata@gold.ocn.ne.jp Copyright (c) 2000,2001 Eiwa System Management, Inc. Object Club Kenji Hiranabe02/09/26 Copyright

More information

JAVA H13 OISA JAVA 1

JAVA H13 OISA JAVA 1 JAVA H13 OISA JAVA 1 ...3 JAR...4 2.1... 4 2.2... 4...5 3.1... 5 3.2... 6...7 4.1... 7 4.2... 7 4.3... 10 4.4...11 4.5... 12 4.6... 13 4.7... 14 4.8... 15 4.9... 16...18 5.1... 18 5.2...19 2 Java Java

More information

Web SOAP Internet Web REST SOAP REST 3 REST SOAP 4

Web SOAP Internet Web REST SOAP REST 3 REST SOAP 4 XML Day Web2.0 REST SOAP SOAP REST WADL, WSDL2.0 REST SOAP " " 2006 12 11 XML Web2.0 SOAP REST 2 Web SOAP Internet Web REST SOAP REST 3 REST SOAP 4 REST Representational State Transfer REST Web URL XML

More information

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

JavaScript 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 information

Microsoft PowerPoint _2b-DOM.pptx

Microsoft PowerPoint _2b-DOM.pptx 要素ノードの参照 プロパティで参照可能な親 子 兄弟ノード 要素ノードの他に, テキストノード, ノード, コメントノードなど様々なノードが含まれる ( 処理中に判別が必要 ) 要素ノードのみ参照するプロパティ プロパティ 参照先 parentelement 親要素 firstelementchild 先頭の子要素 lastelementchild 末尾の子要素 nextelementsibng 直後の兄弟要素

More information

Microsoft Word - keisankigairon.ch doc

Microsoft Word - keisankigairon.ch doc 1000000100001010 1000001000001011 0100001100010010 1010001100001100 load %r1,10 load %r2,11 add %r3,%r1,%r2 store %r3,12 k = i + j ; = > (* 1 2 3 4 5 6 7 8 9 10) 3628800 DO 3 I=1,3 DO3I=1.3 DO3I 1.3

More information

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

¥×¥í¥°¥é¥ß¥ó¥°±é½¬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 information

Java演習(4) -- 変数と型 --

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 2 3 /usr/local javalib xerces-2_6_2 xalan-2_6_0 4 XERCES_HOME=/usr/local/javalib/xerces-2_6_2 CLASSPATH=$XERCES_HOME/xmlParserAPIs.jar:$CLASSPATH CLASSPATH=$XERCES_HOME/xercesImpl.jar:$CLASSPATH CLASSPATH=$XERCES_HOME/xercesSamples.jar:$CLASSPATH

More information

Java updated

Java updated Java 2003.07.14 updated 3 1 Java 5 1.1 Java................................. 5 1.2 Java..................................... 5 1.3 Java................................ 6 1.3.1 Java.......................

More information

VDM-SL VDM VDM-SL Toolbox VDM++ Toolbox 1 VDM-SL VDM++ Web bool

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

More information

連載 構文解析器結合子 山下伸夫 (( 株 ) タイムインターメディア ) 文字列の分解 1 1 Haskell lines Prelude lines :: String -> [String] lines "" = [] lines s = let (l,s'

連載 構文解析器結合子 山下伸夫 (( 株 ) タイムインターメディア ) 文字列の分解 1 1 Haskell lines Prelude lines :: String -> [String] lines  = [] lines s = let (l,s' 連載 構文解析器結合子 山下伸夫 (( 株 ) タイムインターメディア ) nobsun@sampou.org 文字列の分解 1 1 Haskell lines Prelude lines :: String -> [String] lines "" = [] lines s = let (l,s') = break ('\n'==) s in l : case s' of [] -> [] (_:s'')

More information

Copyright c 2008 Zhenjiang Hu, All Right Reserved.

Copyright c 2008 Zhenjiang Hu, All Right Reserved. 2008 10 27 Copyright c 2008 Zhenjiang Hu, All Right Reserved. (Bool) True False data Bool = False True Remark: not :: Bool Bool not False = True not True = False (Pattern matching) (Rewriting rules) not

More information

javascript key

javascript key Associate Professor Department of International Social Studies KYOAI GAKUEN UNIVERSITY Email: ogashiwa@c.kyoai.ac.jp, ogashiwa@wide.ad.jp sample

More information

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println(Hello World); (Basic Theory of Information Processing) Java (eclipse ) Hello World! eclipse Java 1 3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello

More information

BlueJ 2.0.1 BlueJ 2.0.x Michael Kölling Mærsk Institute University of Southern Denmark Toin University of Yokohama Alberto Palacios Pawlovsky 17 4 4 3 1 5 1.1 BlueJ.....................................

More information

(CC Attribution) Lisp 2.1 (Gauche )

(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 information

Oracle Forms Services R6i

Oracle Forms Services R6i Creation Date: Jul 04, 2001 Last Update: Jul 31, 2001 Version: 1.0 0 0... 1 1...3 1.1... 3 1.2... 3 1.3... 3 2...4 2.1 C/S... 4 2.2 WEB... 5 2.3 WEB... 5 2.4 JAVABEAN... 6 3 JAVABEAN...7 3.1... 7 3.2 JDEVELOPER...

More information

AJAXを使用した高い対話性を誇るポートレットの構築

AJAXを使用した高い対話性を誇るポートレットの構築 Oracle Application Server Portal テクニカル ノート AJAX 2006 7 概要 Web Web Web UI Web Web Web Web Ajax Asynchronous JavaScript and XML Ajax Ajax 1 API JSR 168 Web Java JSR 168 JavaScript AJAX: 画面の背後にあるテクノロジ Web

More information

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa I 2017 11 1 SageMath SageMath( Sage ) Sage Python Sage Python Sage Maxima Maxima Sage Sage Sage Linux, Mac, Windows *1 2 Sage Sage 4 1. ( sage CUI) 2. Sage ( sage.sage ) 3. Sage ( notebook() ) 4. Sage

More information

Q&A集

Q&A集 & ver.2 EWEB-3C-N080 PreSerV for Web MapDataManager & i 1... 1 1.1... 1 1.2... 2 1.3... 6 1.4 MDM. 7 1.5 ( )... 9 1.6 ( )...12 1.7...14 1.8...15 1.9...16 1.10...17 1.11...18 1.12 19 1.13...20 1.14...21

More information

3360 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 information

Terminal ocaml $ ocaml Objective Caml version # 1+2;;<ret> # 1+2;; - : int = 3 ;; OCaml <ret> - : int = 3 OC

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

More information

e10s におけるプロセス間通信の基本 219 HACK #34 Components.manager.removeBootstrappedManifestLocati on() function shutdown(adata, areason) { const IOService =

e10s におけるプロセス間通信の基本 219 HACK #34 Components.manager.removeBootstrappedManifestLocati on() function shutdown(adata, areason) { const IOService = e10s におけるプロセス間通信の基本 219 Components.manager.removeBootstrappedManifestLocati on() function shutdown(adata, areason) { const IOService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);

More information

: : : TSTank 2

: : : TSTank 2 Java (8) 2008-05-20 Lesson6 Lesson5 Java 1 Lesson 6: TSTank1, TSTank2, TSTank3 java 2 car1 car2 Car car1 = new Car(); Car car2 = new Car(); car1.setcolor(red); car2.setcolor(blue); car2.changeengine(jet);

More information

test.gby

test.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 information

untitled

untitled 7/67/1073,42911 15,020158,393 7/127/184,6674,913 2927 71.3 894 21.8 287 7.0 n=4108) 132 3.2 62 1.5 934 22.7 786 19.1 629 15.3 801 19.5 407 9.9 357 8.7 (n=4108) 35 35 30 25 20 15 10 153 3.7 1 0.02 23 0.6

More information

org/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

org/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 information

オンラインテスト

オンラインテスト 1. 2. JavaScript 3. Perl 4. CGI 1. WWW HTML WWW World Wide Web HTML Hyper Text Markup Language XML, XHTML Java (.java) JavaApplet (.class,.jar) JavaServlet (.jsp) JavaScript (.html) CGI (.cgi) SSI (.shtml)

More information

P.37 P.816 P.17 P.1819 contents 1 2

P.37 P.816 P.17 P.1819 contents 1 2 201211 NEW! P.37 P.816 P.17 P.1819 contents 1 2 3 4 5 6 7 8 http://www.tokiomarine-nichido.co.jp/ 1 2 16 3 11 4 1 18 9 10 5 6 11 12 18 9 10 6 7 8 13 1411 12 5 13 14 15 1615 16 21 17 18 0120-071-281 19

More information

6-1

6-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 information

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1 Java (9) 1 Lesson 7 2008-05-20 Java System.out.println() 1 Java API 1 Java Java 1 GUI 2 Java 3 1.1 5 3 1.0 10.0, 1.0, 0.5 5.0, 3.0, 0.3 4.0, 1.0, 0.6 1 2 4 3, ( 2 3 2 1.2 Java (stream) 4 1 a 5 (End of

More information

koba/class/soft-kiso/ 1 λ if λx.λy.y false 0 λ typed λ-calculus λ λ 1.1 λ λ, syntax τ (types) ::= b τ 1 τ 2 τ 1

koba/class/soft-kiso/ 1 λ if λx.λy.y false 0 λ typed λ-calculus λ λ 1.1 λ λ, syntax τ (types) ::= b τ 1 τ 2 τ 1 http://www.kb.ecei.tohoku.ac.jp/ koba/class/soft-kiso/ 1 λ if λx.λy.y false 0 λ typed λ-calculus λ λ 1.1 λ 1.1.1 λ, syntax τ (types) ::= b τ 1 τ 2 τ 1 τ 2 M (terms) ::= c τ x M 1 M 2 λx : τ.m (M 1,M 2

More information

() < > </ > / HTML SGML HTML 1.1 DTD DTD ( DTD (prolog) )SGML 1. DTD ( ) 2. DTD <!-- DTD-- > <!ELEMENT MAIL - - ((TO,FROM)?,DATE?,BODY) > <!ELEMENT TO

() < > </ > / HTML SGML HTML 1.1 DTD DTD ( DTD (prolog) )SGML 1. DTD ( ) 2. DTD <!-- DTD-- > <!ELEMENT MAIL - - ((TO,FROM)?,DATE?,BODY) > <!ELEMENT TO 2009 2D SGML,XML,HTML 2009 11 11 1 SGML SGML Standard Generalized Markup Language (ISO 8879) (JIS X 4151) < >< >SGML< > < >asakawa@ieee.orgSGML < >SGML SGML Standard Generalized Markup

More information

Microsoft PowerPoint - 2016_2b-DOM.pptx

Microsoft PowerPoint - 2016_2b-DOM.pptx < 練 習 2-11> DOMの 空 白 ノード 2_nodeVisit の 実 行 結 果 ( 前 ページ)から,HTML をルート 要 素 とするDOMの 木 構 造 を 示 しなさい ただし, 空 白 ノードは 空 白,その 他 のテキストノードは テキスト とすること HTML DOMによる 文 書 データの 参 照 と 変 更 DOMツリー 内 のノード 参 照 相 対 位 置 によるノード

More information

MPI MPI MPI.NET C# MPI Version2

MPI MPI MPI.NET C# MPI Version2 MPI.NET C# 2 2009 2 27 MPI MPI MPI.NET C# MPI Version2 MPI (Message Passing Interface) MPI MPI Version 1 1994 1 1 1 1 ID MPI MPI_Send MPI_Recv if(rank == 0){ // 0 MPI_Send(); } else if(rank == 1){ // 1

More information

オブジェクト脳のつくり方

オブジェクト脳のつくり方 2003 12 16 ( ) ML Java,.NET, UML J2EE, Web Java, J2EE.NET SI ex. ) OO OO OO OO OO (Controller) (Promoter) (Analyzer) (Supporter) http://nba.nikkeibp.co.jp/coachsp.html It takes time. OO OK OO 1.

More information

untitled

untitled Ajax Web Ajax http://www.openspc2.org/javascript/ajax/ajax_stu dy/index.html Life is beautiful Ajax http://satoshi.blogs.com/life/2005/06/ajax.html Ajax Ajax Asynchronous JavaScript + XML JavaScript XML

More information

listings-ext

listings-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

bdd.gby

bdd.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 information

text_08.dvi

text_08.dvi C 8 12 6 6 8 Java (3) 1 8.1 8 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1 8.2 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :

More information

1 1 1.......................... 1 2........................ 2 2 3 1.................. 3 2.......................... 5 3........................... 6 4

1 1 1.......................... 1 2........................ 2 2 3 1.................. 3 2.......................... 5 3........................... 6 4 1 1 1.......................... 1 2........................ 2 2 3 1.................. 3 2.......................... 5 3........................... 6 4........................ 7 3 Ajax 8 1...........................

More information

JavaからScalaへ

JavaからScalaへ #01 Java Scala (NISHIMOTO Keisuke) keisuken@cappuccino.ne.jp Java #01 Java Scala 2 (NISHIMOTO Keisuke) Twitter: @keisuke_n (follow,remove,block ) Java Scala Web GUI/ #01 Java Scala 3 29 Ruby/Rails Scala

More information

11夏特集号初校.indd

11夏特集号初校.indd 1 2 3 5 50 40 7 6 3 ABC 3 5 A 5% B C 100 3 1 2 3 A 5% 5% 5% B 10% 5% 0% C 20% 10% 15% A 15.8% 15.0% 0.8% B 15.5% 15.0% 0.5% C 12.2% 15.0% 2.8% 2,000 1,500 1,000 500 0 10% 5% 3% 1% 01 5 10 15 20 25 30

More information

{:from => Java, :to => Ruby } Java Ruby KAKUTANI Shintaro; Eiwa System Management, Inc.; a strong Ruby proponent http://kakutani.com http://www.amazon.co.jp/o/asin/4873113202/kakutani-22 http://www.amazon.co.jp/o/asin/477413256x/kakutani-22

More information

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web update Event Driven paint Signature Overwriting Overriding

More information

r03.dvi

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

More information

I 11

I 11 I 11 2 h 345 645 3 var strs = ["meijo", "university", "abc", "shiogama","yagoto", "ueda", "hara", "irinaka", "yagoto-nisseki", "kanayama"] function make_table(){ var a = [] for (var i = 0; i < strs.length;

More information

Microsoft Word - 430_15_Developing_Stored_Procedure.doc

Microsoft Word - 430_15_Developing_Stored_Procedure.doc Java Oracle 1998 11 Java 3 Java Web GUI Java Java Java Oracle Java Oracle8i Oracle / Oracle Java Virtual Machine VM CORBA Enterprise JavaBeans Oracle Java Java Java Oracle Oracle Java Virtual Machine Oracle

More information