関数から関数を投げる @napthats
自己紹介● napthats (ザッツ)● napthats.com● 言語:Perl, Scala, Java, Haskell, …● Perl暦:三年ぐらい● 最近はScalaが多い – Perlはちょっとし...
高階関数● 関数を受け取ったり返したりする関数● 関数型言語によく出てくる● Perlだとmapとか● print(map {$_ + 2} (1, 2, 3)) – 345 – mapは{$_ + 2}とい...
高階関数● 関数を投げ返す関数● sub f {● my $x = shift;● return sub {● my $y = shift;● return $x + $y...
高階関数● 関数を投げ返す関数● sub f {● my $x = shift;● return sub {● my $y = shift;● return $x + $y...
高階関数● 使い方● my fixed_f = f(3);● print fixed_f(4); #7
カリー化● 多引数関数を高階関数に変換する● 「xとyを受け取って結果を返す関数」を「xを 受け取って『yを受け取って結果を返す関数』 を返す関数」に● 実はさっき出てきた
カリー化● sub f_curry {● my $x = shift;● return sub {● my $y = shift;● return $x + $y;● ...
カリー化● 普通に書くとこう● sub f {● my $x = shift;● my $y = shift;● return $x + $y;● }
カリー化● f(3, 4)● f_curry(3)->(4)● 関数を受け取って自動でカリー化する関数も書 けます
おわり
of 11

Nambapm_napthats

Published on: Mar 3, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - Nambapm_napthats

  • 1. 関数から関数を投げる @napthats
  • 2. 自己紹介● napthats (ザッツ)● napthats.com● 言語:Perl, Scala, Java, Haskell, …● Perl暦:三年ぐらい● 最近はScalaが多い – Perlはちょっとしたテキスト変換とかに使う● お題は無理やり
  • 3. 高階関数● 関数を受け取ったり返したりする関数● 関数型言語によく出てくる● Perlだとmapとか● print(map {$_ + 2} (1, 2, 3)) – 345 – mapは{$_ + 2}という関数を受け取る
  • 4. 高階関数● 関数を投げ返す関数● sub f {● my $x = shift;● return sub {● my $y = shift;● return $x + $y;● }● }
  • 5. 高階関数● 関数を投げ返す関数● sub f {● my $x = shift;● return sub {● my $y = shift;● return $x + $y;● }● }
  • 6. 高階関数● 使い方● my fixed_f = f(3);● print fixed_f(4); #7
  • 7. カリー化● 多引数関数を高階関数に変換する● 「xとyを受け取って結果を返す関数」を「xを 受け取って『yを受け取って結果を返す関数』 を返す関数」に● 実はさっき出てきた
  • 8. カリー化● sub f_curry {● my $x = shift;● return sub {● my $y = shift;● return $x + $y;● }● }
  • 9. カリー化● 普通に書くとこう● sub f {● my $x = shift;● my $y = shift;● return $x + $y;● }
  • 10. カリー化● f(3, 4)● f_curry(3)->(4)● 関数を受け取って自動でカリー化する関数も書 けます
  • 11. おわり

Related Documents