Slide 1

Slide 1 text

ϓϧϓϧʜ ϘΫ͸ΘΔ͍εΧϥ͡Όͳ͍Α ೥݄೔ גࣜձࣾϏζϦʔν ؠদཽ໵

Slide 2

Slide 2 text

ओ࠵ऀͷ൓Ԡ

Slide 3

Slide 3 text

ࣗݾ঺հ ؠদཽ໵ גࣜձࣾϏζϦʔν)3.04ࣄۀ෦ ೥݄ೖࣾ ೖࣾҎདྷ4DBMBʹΑΔ"54˞։ൃʹܞΘΔ υϥΫΤ͸͔Βશ෦ϓϨΠࡁ ͕·ͩΫϦΞͰ͖͍ͯ·ͤΜ ༡ͼ͍ͨ ˞"QQMJDBOU5SBDLJOH4ZTUFN

Slide 4

Slide 4 text

ಥવͰ͕͢4DBMBͷΠϝʔδ͸ʁ

Slide 5

Slide 5 text

ؔ਺ܕ

Slide 6

Slide 6 text

Ϟφυ

Slide 7

Slide 7 text

มͳࣄݴ͏ͱౖΒΕΔ

Slide 8

Slide 8 text

ͳΜ͔ා͍ʂ

Slide 9

Slide 9 text

ͳΜ͔ා͍ʂ

Slide 10

Slide 10 text

Ͱ΋ͪΐͬͱ·ͬͯʂ

Slide 11

Slide 11 text

4DBMB͸ා͘ͳ͍Αʂ ͳΜͱεΧϥ͕͓͖͕͋Γ ͳ͔·ʹͳΓͨͦ͏ʹͪ͜ΒΛΈ͍ͯΔ ͳ͔·ʹͯ͋͛͠·͔͢ʁ ͸͍ ͍͍͑

Slide 12

Slide 12 text

ࠓ೔ͷझࢫ ଞͷݴޠ஌ࣝΛϕʔεʹ4DBMBΛֶͿ

Slide 13

Slide 13 text

ࠓ೔ͷझࢫ ଞͷݴޠ஌ࣝΛϕʔεʹ4DBMBΛֶͿ ා͘ͳ͍ʂ

Slide 14

Slide 14 text

ࠓ೔ͷझࢫ ଞͷݴޠ஌ࣝΛϕʔεʹ4DBMBΛֶͿ ා͘ͳ͍ʂ 4DBMBΛ஥ؒʹ͠Α͏ʂ

Slide 15

Slide 15 text

4DBMBͷجຊΛ஌Ζ͏ʂ Α͘Θ͔Βͳ͍

Slide 16

Slide 16 text

4DBMBͷجຊΛ஌Ζ͏ʂ Α͘Θ͔Βͳ͍ ͜Θ͍ʜ

Slide 17

Slide 17 text

4DBMBͷجຊΛ஌Ζ͏ʂ Α͘Θ͔Δ

Slide 18

Slide 18 text

4DBMBͷجຊΛ஌Ζ͏ʂ ͜Θ͘ͳ͍ʂ Α͘Θ͔Δ

Slide 19

Slide 19 text

࢛ଇԋࢉ 1 + 1 2 - 1 2 * 2 4 / 2 3VCZ 1ZUIPO 4DBMB 1 + 1 2 - 1 2 * 2 4 / 2 1 + 1 2 - 1 2 * 2 4 / 2

Slide 20

Slide 20 text

׬શʹҰகʂ

Slide 21

Slide 21 text

ม਺ɾ഑ྻ 3VCZ 1ZUIPO 4DBMB foo = [1, 2, 3] print(foo) foo = [1, 2, 3] print(foo) val foo = List(1, 2, 3) print(foo)

Slide 22

Slide 22 text

͍͍ͩͨҰகʂ

Slide 23

Slide 23 text

ϝιου 3VCZ 1ZUIPO 4DBMB def foo print("hello") end foo() def foo(): print("hello") foo() def foo = { println("hello") } foo()

Slide 24

Slide 24 text

GPSJG 3VCZ 1ZUIPO 4DBMB for x in 0..2 do puts(x) end for x in range(3): print(x) for (n <- 0 to 2) { println(n) } b = true if b then puts("true!") else puts("false!") end b = True if b: print("true!") else: print("false!") val b = true if (b) { println("true!") } else { println("false!") }

Slide 25

Slide 25 text

TXJUDI 3VCZ 1ZUIPO 4DBMB x = "Ruby" case x when "Ruby" then puts("this is ruby") when "Python" then puts("this is python") when "Scala" then puts("this is scala") end o = "Python" if o is "Ruby": print("this is ruby!") elif o is "Python": print("this is python!") elif o is "Scala": print("this is scala!") val o = "Scala" o match { case "Ruby" => println("this is ruby!") case "Python" => println("this is python!") case "Scala" => println("this is scala!") case _ => // No Action }

Slide 26

Slide 26 text

ͦΜͳʹมΘΒͳ͍Ͱ͢Ͷ☺

Slide 27

Slide 27 text

Ϋϥε 3VCZ 1ZUIPO 4DBMB class Foo def say() puts("Foo!") end end Foo.new.say() class Foo: def say(self): print("Foo!") Foo().say() class Foo { def say() = println("Foo!") } new Foo().say()

Slide 28

Slide 28 text

΋͏4DBMB͕ॻ͚·͢Ͷʂ

Slide 29

Slide 29 text

EXBOHP͞Μͷࢿྉ΋ࢀߟʹ IUUQEXBOHPHJUIVCJPTDBMB@UFYU

Slide 30

Slide 30 text

஥ؒʹͯ͠ΈΑ͏ʂ ͜Μͳͱ͖Ͳ͏ॻ͘ͷʁ Λ͓͑ͯ͞ΈΑ͏ʂ

Slide 31

Slide 31 text

ίϨΫγϣϯૢ࡞ 3VCZ 1ZUIPO 4DBMB [1,2,3].map { |x| x + 1 } map(lambda x: x + 1, [1,2,3]) [x + 1 for x in [1, 2, 3]] List(1,2,3).map { x => x + 1 } List(1,2,3).map(_ + 1) [1,2,3].select { |x| x % 2 == 0 } filter(lambda x: x % 2 == 0, [1,2,3]) [x for x in [1,2,3] if x % 2 == 0] List(1,2,3).filter(_ % 2 == 0)

Slide 32

Slide 32 text

γϯϓϧʹॻ͚·͢Αʂ

Slide 33

Slide 33 text

μοΫλΠϐϯά 3VCZ class Foo def say puts("Foo!") end end class Bar def say puts("Bar!") end end [Foo.new, Bar.new].each do |x| x.say() end

Slide 34

Slide 34 text

μοΫλΠϐϯά class Foo: def say(self): print("Foo!") class Bar: def say(self): print("Bar!") for x in [Foo(), Bar()]: x.say() 1ZUIPO

Slide 35

Slide 35 text

μοΫλΠϐϯά trait Talkable { def say(): Unit } class Foo extends Talkable { def say() = println("Foo!") } class Bar extends Talkable { def say() = println("Bar!") } def say(x: Talkable) = x.say() say(new Foo) say(new Bar) 4DBMB

Slide 36

Slide 36 text

μοΫλΠϐϯά class Foo { def say() = println("Foo!") } class Bar { def say() = println("Bar!") } def say[E <: { def say() }](x: E) = x.say() say(new Foo) say(new Bar) 4DBMB

Slide 37

Slide 37 text

NJYJO 3VCZ module Foo def say() puts("Foo!") end end module Bar include Foo def say() puts("Bar!") end end module Baz include Foo def say() puts("Baz!") end end class Qux include Bar include Baz def say() puts("Qux!") end end Qux.new.say()

Slide 38

Slide 38 text

NJYJO 1ZUIPO class Foo: def say(self): print("Foo!") class Bar(Foo): def say(self): print("Bar!") class Baz(Foo): def say(self): print("Baz!") class Qux(Bar, Baz): def say(self): print("Qux!") Qux().say()

Slide 39

Slide 39 text

NJYJO trait Foo { def say() = println("Foo!") } trait Bar extends Foo { override def say() = println("Bar!") } trait Baz extends Foo { override def say() = println("Baz!") } class Qux extends Bar with Baz { override def say() = println("Qux!") } new Qux say() 4DBMB

Slide 40

Slide 40 text

4DBMBͰ999͕͍ͨ͠ʂ

Slide 41

Slide 41 text

4DBMBͰ999͕͍ͨ͠ʂ

Slide 42

Slide 42 text

஥ؒʹͰ͖·ͨ͠Ͷʂ

Slide 43

Slide 43 text

Ұॹʹઓ͓͏ʂ Ͳ͏͍͏ͱ͖ʹ࢖͑Δͷʁ Λ͓͑ͯ͞ΈΑ͏ʂ

Slide 44

Slide 44 text

4DBMBͷྑ͍ͱ͜Ζ ܕ҆શ ؔ਺ܕ ฒྻɾ෼ࢄ

Slide 45

Slide 45 text

ؔ਺ܕʹ͠ͳ͍ɺܕ҆શʹ͠ͳ͍ ͱ͍͏ࣄ΋Ͱ͖·͢

Slide 46

Slide 46 text

࢖͍ํΛબͿࣄ͕Ͱ͖Δʂ

Slide 47

Slide 47 text

΍Γ͍ͨࣄʹ߹Θͤͯ ॊೈʹྗΛൃش

Slide 48

Slide 48 text

༐ऀλΠϓʂ

Slide 49

Slide 49 text

·ͱΊ جຊతͳ͜ͱ͓͑͞Α͏ʂ Α͋͘Δ࢖͍ํΛ͓͑͞Α͏ʂ ࢖͍ॴΛ͓͑͞Α͏ʂ

Slide 50

Slide 50 text

͜Θ͘ͳ͍Αʂ པΓʹͳΔ஥ؒͩΑʂ

Slide 51

Slide 51 text

ͦͯ͠ͰΜͤͭ΁ʜ ͍ͤͪ͝ΐ͏͋Γ͕ͱ͏͍͟͝·ͨ͠