presen.gby

Similar documents
fp.gby

monad.gby

haskell.gby

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

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

アルゴリズムとデータ構造1

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Java学習教材

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

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

ALG ppt

2

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

データ構造とアルゴリズム論

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

K227 Java 2

アルゴリズムとデータ構造1

Java演習(9) -- クラスとメソッド --

Parametric Polymorphism

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

: : : TSTank 2

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

text_08.dvi

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

10K pdf

新・明解Java入門

解きながら学ぶJava入門編

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

< F2D A839382CC906A2E6A7464>

I java A

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

untitled

r02.dvi

8 if switch for while do while 2

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

ユニット・テストの概要

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

/ ( ) 8/7/ :21 p.2/64

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

Java言語 第1回

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

r3.dvi

Java言語 第1回



< F2D F B834E2E6A7464>

< F2D82518CC282CC D2E6A7464>

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

Transcription:

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 { public void actionperformed(actionevent e); } 10

AWT ActionListener import java.awt.*; import java.awt.event.*; class ButtonApp { private final Button button = new Button(); public ButtonApp() { button.addactionlistener( new ActionListener() { public void actionperformed(actionevent e) { System.out.println("event received: " + e); } });}} 2 11

public interface Function1Void<A> { void apply(a a); } AWT ActionListener class ButtonApp { private final Button button = new Button(); public ButtonApp() { button.addactionlistener( new Function1Void<ActionEvent>() { public void apply(actionevent e) { System.out.println("event received: "+e); }});}} 2 12

Java public ButtonApp() { private final Button button = new Button(); } button.addactionlistener(#{ ActionEvent e -> System.out.println("event received: "+e) }); 13

14

15

16

{ 10, 20, 30, 40, 50 } 0 n n 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 17

Java for 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 18

for Douglas Crockford JavaScript: http://www.crockford.com/javascript/javascript.html for JavaScript C JavaScript C Java Lisp Scheme 19

20

for for for for for ) for two days for (i = 0; i < N; i++) { } 0 N = - + 1 (N - 1) - 0 + 1 = N 1/3 + 1/3 + 1/3 1 21

Java for public static int func(int[] ar) { int ret = 0; for (int i = 0; i < ar.length; i++) { ret = ret + ar[i] * i; } return ret; } int[] inp = {10,20,30,40,50}; func(inp); 400 22

Haskell MapReduce zip [0..] [10,20,30,40,50] [(0,10),(1,20),(2,30),(3,40),(4,50)] map (\(i,x) -> x*i) [0,20,60,120,200] foldl (+) 0 ((((0 + 0) + 20) + 60) + 120) + 200 400 func = foldl (+) 0. map (\(i,x) -> x*i). zip [0..] func [10,20,30,40,50] 400 23

24

25

26

http://www.itpl.co.jp/tech/func/essense_of_fp(sea0305).pdf 27

public class Sale { Date date; int amount; } Java Sale Sale (Date _date, int _amount) { date = _date; amount = _amount; } // Date public static int getmonth (Date d) { Calendar cal = Calendar.getInstance(); cal.settime(d); int month = cal.get(calendar.month); return month; } 28

Java public static List<Integer> monthlysale(list<sale> sales) { ArrayList<Integer> result = new ArrayList<Integer>(); int sum = 0; int prevmonth = getmonth(sales.get(0).date); for (Sale sale : sales) { if(prevmonth == getmonth(sale.date)) { sum += sale.amount; } else { result.add(sum); sum = sale.amount; } prevmonth = getmonth(sale.date); } if(sum!= 0) { result.add(sum); } return result; } 29

Haskell Sale data Sale = Sale UTCTime Int time :: Sale -> UTCTime time (Sale t _) = t amount :: Sale -> Int amount (Sale _ m) = m month :: Sale -> Int month s = m where day = utctday (time s) (_, m, _) = togregorian day 30

groupby ((==) on month) [Sale 2013-01-20 2020,Sale 2013-01-23 1750,Sale 2013-02-08 650,Sale 2013-02-14 3740,Sale 2013-02-18 8000... [[Sale 2013-01-20 2020,Sale 2013-01-23 1750 ],[Sale 2013-02-08 650,Sale 2013-02-14 3740,Sale 2013-02-18 8000... UTCTime 31

map (map amount) [[Sale 2013-01-20 2020,Sale 2013-01-23 1750 ],[Sale 2013-02-08 650,Sale 2013-02-14 3740,Sale 2013-02-18 8000... [[2020,1750],[650,3740,8000,1960],[2200,6540... 32

map (foldl (+) 0) [[2020,1750],[650,3740,8000,1960],[2200,6540... [3770,14350,... 33

Haskell monthlysale :: [Sale] -> [Int] monthlysale = map (foldl (+) 0). map (map amount). groupby ((==) on month) 34

35

36

public class Person { String name; int age; } Java DB HashMap<String,Person> db = new HashMap<String,Person>(); Person sazae = new Person(" ", 24); Person fune = new Person(" ", 52); map.put(" ",sazae); map.put(" ",fune); // " " 37

String me = " "; Person mother = db.get(me); // " " Person gramma = db.get(mother.name); // " " String me = " "; Person mother = db.get(me); // " " Person gramma = db.get(mother.name); // null String me = " "; Person mother = db.get(me); // null Person gramma = db.get(mother.name); // 38

String me = " "; Person mother = db.get(me); Person gramma = null; if (mother!= null) { gramma = db.get(mother.name); } 39

<Person> get(<string>) null null null Java null null 40

41

Haskell DB data Person = Person String Int name :: Person -> String name (Person n _) = n age :: Person -> Int age (Person _ a) = a db :: [(String, Person)] db = [(" ", Person " " 24),(" ", Person " " 52)] 42

lookup Maybe DB lookup :: String -> [(String, Person)] -> Maybe Person Person Maybe Person : Nothing : Just (Person " " 24) 43

Maybe Person case... of findgramma :: String -> Maybe Person findgramma me = case lookup me db of Nothing -> Nothing Just mother -> lookup (name mother) db 44

45

46

(Java ) String me = " "; Person mother = db.get(me); Person gramma = null; if (mother!= null) { gramma = db.get(mother.name); } String me = " "; Person mother = db.get(me); Person gramma = null; Person ggramma = null; if (mother!= null) { gramma = db.get(mother.name); if (gramma!= null) { ggramma = db.get(gramma.name); } } 47

(Haskell ) findgramma :: String -> Maybe Person findgramma me = case lookup me db of Nothing -> Nothing Just mother -> lookup (name mother) db findggramma :: String -> Maybe Person findggramma me = case lookup me db of Nothing -> Nothing Just mother -> case lookup (name mother) db of Nothing -> Nothing Just gramma -> lookup (name gramma) db 48

49

Maybe Maybe Java data Bool = False True data Maybe a = Nothing Just a data Either l r = Left l Right r 50

isalive mother && isalive gramma Maybe a findmother me &&> findmother mother 51

&&> mx &&> f = case mx of Nothing -> Nothing Just x -> f x findggramma :: String -> Maybe Person findggramma me = lookup me db &&> \mother -> lookup (name mother) db &&> \gramma -> lookup (name gramma) db ( ) findggramma :: String -> Maybe Person findggramma me = case lookup me db of Nothing -> Nothing Just mother -> case lookup (name mother) db of Nothing -> Nothing Just gramma -> lookup (name gramma) db 52

53

54

Java data Person = Person String Int data Sale = Sale UTCTime Int 55

data Shape = Rectangle Side Side Ellipse Radius Radius data IntList = Nil Cons Int IntList data Tree a = Leaf Node (Tree a) a (Tree a) 56

* ) Wiki ============== ** \* [ URL] - 1 -- 2 -- 2-1 ++ 2 ++ 2 57

type Wiki = [Element] Wiki data Element = HR H Int HText P HText UOL Xlist type HText = [PText] data PText = Raw Char Escaped Char -- backslash Anchor Title URL type URL = String type Title = String data Xlist = Ulist [Xitem] Olist [Xitem] Empty data Xitem = Item HText Xlist 58

59

60