Slide 1

Slide 1 text

1ZUIPO࢖͍͔Βݟͨ1FSM (PUBOEBQN
 !NJIZBFSV

Slide 2

Slide 2 text

ࣗݾ঺հ w ϛώϟΤϧ!NJIZBFSV w 1ZUIPO 0CKFDUJWF$ śƂŠƃٙ࿭ 
 1FSM w ΏͱΓ7JNNFS w ζϰΟζμʔઓಆһ

Slide 3

Slide 3 text

Α͘--ͬͯҰׅΓʹ͞ΕΔ͠
 1ZUIPOΘ͔Ε͹༨༟Ͱ͠ΐ

Slide 4

Slide 4 text

ͭ1FSM

Slide 5

Slide 5 text

sub say_hello { my $name = shift; ! print "Hello, $name\n"; }

Slide 6

Slide 6 text

͋ΕͬʁҾ਺͸ʁ TIJGUͬͯͳΜ΍ͶΜ

Slide 7

Slide 7 text

sub sum_numbers { my $sum; for (@_) { $sum += $_; } ! return $sum; }

Slide 8

Slide 8 text

Μͬʁ

Slide 9

Slide 9 text

$_ @_

Slide 10

Slide 10 text

@_ͱ͔$_ͱ͔Ͳ͔͜ΒདྷͨΜ΍ ͳΜ͡Ό͍͜ΓΌʔʂ

Slide 11

Slide 11 text

࠷ॳʹࢥͬͨෆຬ w มͳه߸ଟͯ͘ҙຯෆ໌ w ίϯςΩετʁʁʁ w ຖճNZͬͯॻ͘ͷ໘౗͍͘͞ w ਅِ஋Σʜʜ w ϦϑΝϨϯεपΓ͕Θ͔Γʹ͍͘ w Ҿ਺Ϧετ͸Ͳ͜ʂʁ ʜଞʹ΋͔͋ͬͨ΋͚ͩͲ๨Εͨ͆

Slide 12

Slide 12 text

มͳه߸ଟͯ͘ҙຯෆ໌ $_ @_ 1ZUIPOͰ͸͜ΜͳʹढจΊ͍ͨม਺͸ग़ͯ͜ͳ͔ͬͨʂ $! $@ ͨͿΜʜ $. $/

Slide 13

Slide 13 text

͜Μ͖ͯ͢ͱʁʁʁ @a = (0, 1, 2) Ϧετ
 ίϯςΩετ 0, 1, 2 εΧϥʔ
 ίϯςΩετ 3 ཁૉ਺͕஌Γ͔ͨͬͨΒlen()ͱ͔໌ࣔతʹॻ͖͍ͨ ৔ॴʹΑͬͯҙຯ͢Δͱ͜Ζ͕ҧ͏ʜʜͩͱʜʜ

Slide 14

Slide 14 text

NZࢯ w --ͬͯݴΘΕΔ͘Β͍ͩ͠ɺϥΠτʹॻ͖͍ͨ w 1ZUIPOͰ͸म০ࢠͳ͠ͰϩʔΧϧม਺

Slide 15

Slide 15 text

ਅِ஋Σʜʜ w ਅِΛද͢໌֬ͳ΍͕ͭͳ͍ w 5SVF 'BMTFཉ͍ͬ͢͠ w ίϯςΩετ΋૬·ͬͯѻ͍͕೉͍͠

Slide 16

Slide 16 text

ϦϑΝϨϯε w ࠷ॳɺ ͱ<>͸ಉͩ͡ͱࢥ͍ͬͯͨ w εΧϥʔม਺ͳͷʹ഑ྻʂ w 1ZUIPOͰ͸഑ྻͱݴͬͨΒ͜Ε͚ͩ @a = (0, 1, 2); $ref = \@a; $ref = [0, 1, 2]; a = [0, 1, 2]

Slide 17

Slide 17 text

ͳΜͰҾ਺Ϧετͳ͍ͷ w !@Λड͚ͱΔ͚Ͳ࢖͍ํࣗ༝͗͢ w 1ZUIPOͩͱؔ਺ͷσϑΥϧτ஋ΛઃఆͰ͖Δ͠
 ΩʔϫʔυͰݺͿ͜ͱ΋ग़དྷΔʂ my ($a, $b) = @_; my $a = shift; my %args = @_;

Slide 18

Slide 18 text

ͪͳΈʹ w σϑΥϧτ஋Λ࢖ͬͨݺͼग़͠ w ී௨ͷݺͼग़͠ w Ωʔϫʔυݺͼग़͠ def hello(name = 'mihyaeru'): print 'Hello, %s' % name ! hello() hello('dareka') hello(name = 'anata')

Slide 19

Slide 19 text

ෆຬΛ๊͖ͭͭ
 ਺ϲ݄͕ܦա

Slide 20

Slide 20 text

࠷ॳʹࢥͬͨෆຬ w มͳه߸ଟͯ͘ҙຯෆ໌ w ίϯςΩετʁʁʁ w ຖճNZͬͯॻ͘ͷ໘౗͍͘͞ w ਅِ஋Σʜʜ w ϦϑΝϨϯεपΓ͕Θ͔Γʹ͍͘ w Ҿ਺Ϧετ͸Ͳ͜ʂʁ

Slide 21

Slide 21 text

࠷ॳʹࢥͬͨෆຬࠓ͸ w มͳه߸ଟͯ͘ҙຯෆ໌ w ίϯςΩετʁʁʁ w ຖճNZͬͯॻ͘ͷ໘౗͍͘͞ w ਅِ஋Σʜʜ w ϦϑΝϨϯεपΓ͕Θ͔Γʹ͍͘ w Ҿ਺Ϧετ͸Ͳ͜ʂʁ ׳ΕΕ͹ා͘ͳ͍ʂ ׳ΕΕ͹ʢ͈́ ॻ͍ͨํ͕҆৺ײ͋Δ ਅِ஋Σʜʜ Ҿ਺ʹ໊લ͸ͳ͘୯ͳΔϦετ ະͩʹͬ͘͠Γ͜ͳ͍

Slide 22

Slide 22 text

ෆຬ͹͔Γݴͬͯ΋
 ΞϨͳͷͰ

Slide 23

Slide 23 text

ؾʹೖ͍ͬͯΔͱ͜Ζ w ແ໊ؔ਺͕࢖͍΍͍͢ w NBQͱ͔HSFQͷײ͕͡޷͖ w ϝιουݺͼग़࣌͠ͷୈҰҾ਺ʹTFMG͕ೖͬͯ͘Δ

Slide 24

Slide 24 text

ແ໊ؔ਺͕࢖͍΍͍͢ w 1ZUIPOʹ΋MBNCEBͱ͍͏ແ໊ؔ਺Λ࡞Δه๏ΞϦ w ࣜΛ͔ͭ͠ೖΕΒΕͳ͍͔Β਺จͷॲཧ͸μϝ hoge_call(sub { # do # something # hoge }); def temp(): # do # something # hoge ! hoge_call(temp) 1FSM 1ZUIPO

Slide 25

Slide 25 text

NBQͱ͔HSFQ͕ྑ͍ײ͡ Ҿ਺Λح਺͚ͩʹߜΓࠐΜͰɺɺɺ
 ৐ͨ͠஋ͷ഑ྻʹ͢Δɺɺɺ
 తͳॲཧ my @squared_odds = map { $_ * $_ } grep { $_ % 2 == 1 } @_;

Slide 26

Slide 26 text

1ZUIPOͩͱ [x * x for x in nums if x % 2 == 1]

Slide 27

Slide 27 text

1ZUIPOͩͱ [x * x for x in nums if x % 2 == 1] NBQʹ૬౰ HSFQʹ૬౰

Slide 28

Slide 28 text

Ϧετ಺แදه [x * x for x in X if x % 2 == 1] {x2 | x ∈ X, x % 2 = 1} ਺ֶͷू߹ʹ͓͚Δ಺แతදه͕ݩʹͳ͍ͬͯΔ

Slide 29

Slide 29 text

ϝιουͷTFMG 1ZUIPOΛኲኵͱͤͯ͞਌ۙײ͋Γ sub method { my ($self, $hoge) = @_; } def method(self, hoge): pass

Slide 30

Slide 30 text

౜ಥ͚ͩͲ
 ͦΜͳ͜ΜͳͰ

Slide 31

Slide 31 text

·ͱΊ w 1FSM࢖͍࢝Ίͯ਺ϲ݄ͷਓͷײ૝ w ֖Λ͚͋ͯΈΔͱṖ͍ͱ͜Ζ͕ଟʑ w ͋Δఔ౓͸׳ΕͰͳΜͱ͔ͳΔʂ w 1FSMා͔͚ͬͨͲࠓͰ͸޷͖ͳͱ͜Ζ΋͋Δʂʂ