SlideShare una empresa de Scribd logo
1 de 172
js> function add2(x) { return x + 2; }
js> add2(5);
7

js> var f = function(x) { return x + 2; }
js> f(8);
10

js> (function(x) { return x + 2; })(9)
11
js> function add2(x) { return x + 2; }
js> add2(5);
7

js> var f = function(x) { return x + 2; }
js> f(8);
10

js> (function(x) { return x + 2; })(9)
11
js> function add2(x) { return x + 2; }
js> add2(5);
7

js> var f = function(x) { return x + 2; }
js> f(8);
10

js> (function(x) { return x + 2; })(9)
11
js> function add2(x) { return x + 2; }
js> add2(5);
7

js> var f = function(x) { return x + 2; }
js> f(8);
10

js> (function(x) { return x + 2; })(9)
11
js> function add2(x) { return x + 2; }
js> add2(5);
7

js> var f = function(x) { return x + 2; }
js> f(8);
10

js> (function(x) { return x + 2; })(9)
11
Func<int, int> f = (x) => x + 2;



var f = function(x) { return x + 2; }


f = lambda x: x + 2;


f = x -> x + 2


(fset 'f (lambda (x) (+ x 2)))
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
Func<string, string>
  foo(Func<DateTime, string> f) {
    return
      x => x.ToUpper() + " "
        + f(DateTime.Today);
}

Func<DateTime, string> d =
    x => x.Year + "/" + x.Month;

Func<string, string> c = foo(d);
string result = c("oblove");

  “OBLOVE 2011/7”
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
int sum(int acc, IEnumerable<int> list) {
    if (!list.Any()) {
        return acc;
    }

    int head = list.First();
    return sum(acc + head, list.Skip(1));
}



List<int> ls = new List<int> { 3, 5, 8 };
int result = sum(0, ls);
>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(), s)
['C#', 'JAVA', 'PYTHON']

>>> map(lambda x: len(x), s)
[2, 4, 6]
>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(), s)
['C#', 'JAVA', 'PYTHON']

>>> map(lambda x: len(x), s)
[2, 4, 6]
>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(), s)
['C#', 'JAVA', 'PYTHON']

>>> map(lambda x: len(x), s)
[2, 4, 6]
>>> s = [1, 2, 3, 4, 5, 6]
>>> filter(lambda x: x % 2 == 0, s)
[2, 4, 6]

>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(),
     filter(lambda x: len(x) > 3, s))
['JAVA', 'PYTHON']
>>> s = [1, 2, 3, 4, 5, 6]
>>> filter(lambda x: x % 2 == 0, s)
[2, 4, 6]

>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(),
     filter(lambda x: len(x) > 3, s))
['JAVA', 'PYTHON']
>>> s = [1, 2, 3, 4, 5, 6]
>>> filter(lambda x: x % 2 == 0, s)
[2, 4, 6]

>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(),
     filter(lambda x: len(x) > 3, s))
['JAVA', 'PYTHON']
>>> s = [1, 2, 3, 4, 5, 6]
>>> filter(lambda x: x % 2 == 0, s)
[2, 4, 6]

>>> s = ['C#', 'Java', 'Python' ]
>>> map(lambda x: x.upper(),
     filter(lambda x: len(x) > 3, s))
['JAVA', 'PYTHON']
>>> s = [3, 4, 5, 7, 9]
>>> reduce(lambda x, y: x + y, s, 0)
28
>>> reduce(
   lambda x, y:
     x + (1 if (y % 2 == 0) else 0),
   s, 0)
1
>>> s = [3, 4, 5, 7, 9]
>>> reduce(lambda x, y: x + y, s, 0)
28
>>> reduce(
   lambda x, y:
     x + (1 if (y % 2 == 0) else 0),
   s, 0)
1
>>> s = [3, 4, 5, 7, 9]
>>> reduce(lambda x, y: x + y, s, 0)
28
>>> reduce(
   lambda x, y:
     x + (1 if (y % 2 == 0) else 0),
   s, 0)
1
>>> import itertools
>>> s = ['a', 'b', 'c', 'd']
>>> zip(s, itertools.count())
[('a', 0), ('b', 1), ('c', 2), ('d', 3)]

>>> filter(lambda x: x[1] != 1,
      zip(s, itertools.count()))
[('a', 0), ('c', 2), ('d', 3)]
>>> import itertools
>>> s = ['a', 'b', 'c', 'd']
>>> zip(s, itertools.count())
[('a', 0), ('b', 1), ('c', 2), ('d', 3)]

>>> filter(lambda x: x[1] != 1,
      zip(s, itertools.count()))
[('a', 0), ('c', 2), ('d', 3)]
>>> import itertools
>>> s = ['a', 'b', 'c', 'd']
>>> zip(s, itertools.count())
[('a', 0), ('b', 1), ('c', 2), ('d', 3)]

>>> filter(lambda x: x[1] != 1,
      zip(s, itertools.count()))
[('a', 0), ('c', 2), ('d', 3)]
>>> [x for x in [1, 2, 3, 4, 5]
      if (x % 2 != 0)]
[1, 3, 5]




var l = from x
        in new List<int> { 1, 2, 3, 4, 5 }
        where x % 2 != 0
        select x;
>>> [x * 2 for x in [1, 2, 3, 4, 5]
      if (x % 2 != 0)]
[2, 6, 10]




var l = from x
        in new List<int> { 1, 2, 3, 4, 5 }
        where x % 2 != 0
        select x * 2;
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
def cor(f):
     i = 0
     while True:
         i = f(i)
         yield i

l = cor(lambda x: x + 4)



[l.next() for x in range(0, 3)]
   [4, 8, 12]
IEnumerable<int> cor(Func<int, int> f) {
    int i = 0;
    while (true) {
       i = f(i);
       yield return i;
    }
}

var li = cor(x => x + 4);
var ls = from x in li.Take(3)
    select "<" + x.ToString() + ">";
   [“<4>”, “<8>”, “<12>”]
import static java.util.Arrays.asList;
import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

selected =
    filter(greaterThan(3),
      asList(1, 2, 3, 4, 5));
   [4, 5]

List<String> fruits =
    asList("apple", "orange", "banana");
selected =
    filter(startsWith("a"), fruits);
   [“apple”]
import static java.util.Arrays.asList;
import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

selected =
    filter(greaterThan(3),
      asList(1, 2, 3, 4, 5));
   [4, 5]

List<String> fruits =
    asList("apple", "orange", "banana");
selected =
    filter(startsWith("a"), fruits);
   [“apple”]
import static java.util.Arrays.asList;
import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

selected =
    filter(greaterThan(3),
      asList(1, 2, 3, 4, 5));
   [4, 5]

List<String> fruits =
    asList("apple", "orange", "banana");
selected =
    filter(startsWith("a"), fruits);
   [“apple”]
import static java.util.Arrays.asList;
import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

selected =
    filter(greaterThan(3),
      asList(1, 2, 3, 4, 5));
   [4, 5]

List<String> fruits =
    asList("apple", "orange", "banana");
selected =
    filter(startsWith("a"), fruits);
   [“apple”]
import static java.util.Arrays.asList;
import static ch.lambdaj.Lambda.*;
import static org.hamcrest.Matchers.*;

selected =
    filter(greaterThan(3),
      asList(1, 2, 3, 4, 5));
   [4, 5]

List<String> fruits =
    asList("apple", "orange", "banana");
selected =
    filter(startsWith("a"), fruits);
   [“apple”]
selected = convert(fruits,
  new Converter<String, String>() {
    public String convert(String arg0) {
        return arg0.toUpperCase();
    }
  });
   [“APPLE”, “ORANGE”, “BANANA”]

Closure c = closure(); {
  of(System.out).println(var(String.class));
}
c.apply("foo");
c.each(fruits);
selected = convert(fruits,
  new Converter<String, String>() {
    public String convert(String arg0) {
        return arg0.toUpperCase();
    }
  });
   [“APPLE”, “ORANGE”, “BANANA”]

Closure c = closure(); {
  of(System.out).println(var(String.class));
}
c.apply("foo");
c.each(fruits);
selected = convert(fruits,
  new Converter<String, String>() {
    public String convert(String arg0) {
        return arg0.toUpperCase();
    }
  });
   [“APPLE”, “ORANGE”, “BANANA”]

Closure c = closure(); {
  of(System.out).println(var(String.class));
}
c.apply("foo");
c.each(fruits);
selected = convert(fruits,
  new Converter<String, String>() {
    public String convert(String arg0) {
        return arg0.toUpperCase();
    }
  });
   [“APPLE”, “ORANGE”, “BANANA”]

Closure c = closure(); {
  of(System.out).println(var(String.class));
}
c.apply("foo");
c.each(fruits);
selected = convert(fruits,
  new Converter<String, String>() {
    public String convert(String arg0) {
        return arg0.toUpperCase();
    }
  });
   [“APPLE”, “ORANGE”, “BANANA”]

Closure c = closure(); {
  of(System.out).println(var(String.class));
}
c.apply("foo");
c.each(fruits);
import static fj.data.Array.*;
import static fj.function.Integers.*;
import fj.data.Array;

Array<Integer> a = array(1, 2, 3, 4, 5, 6);
Array<Integer> b =
  a.filter(even).map(add.f(10));
   [12, 14, 16]
関数潮流(Function Tendency)
関数潮流(Function Tendency)
関数潮流(Function Tendency)
関数潮流(Function Tendency)
関数潮流(Function Tendency)
関数潮流(Function Tendency)
関数潮流(Function Tendency)

Más contenido relacionado

La actualidad más candente

Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
Dmitry Buzdin
 
Functional programming basics
Functional programming basicsFunctional programming basics
Functional programming basics
openbala
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 

La actualidad más candente (20)

The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202The Ring programming language version 1.8 book - Part 29 of 202
The Ring programming language version 1.8 book - Part 29 of 202
 
Millionways
MillionwaysMillionways
Millionways
 
Poor Man's Functional Programming
Poor Man's Functional ProgrammingPoor Man's Functional Programming
Poor Man's Functional Programming
 
Functional programming basics
Functional programming basicsFunctional programming basics
Functional programming basics
 
The Ring programming language version 1.10 book - Part 30 of 212
The Ring programming language version 1.10 book - Part 30 of 212The Ring programming language version 1.10 book - Part 30 of 212
The Ring programming language version 1.10 book - Part 30 of 212
 
The Ring programming language version 1.9 book - Part 31 of 210
The Ring programming language version 1.9 book - Part 31 of 210The Ring programming language version 1.9 book - Part 31 of 210
The Ring programming language version 1.9 book - Part 31 of 210
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
The Ring programming language version 1.5.3 book - Part 22 of 184
The Ring programming language version 1.5.3 book - Part 22 of 184The Ring programming language version 1.5.3 book - Part 22 of 184
The Ring programming language version 1.5.3 book - Part 22 of 184
 
A tour of Python
A tour of PythonA tour of Python
A tour of Python
 
The Ring programming language version 1.5.1 book - Part 34 of 180
The Ring programming language version 1.5.1 book - Part 34 of 180The Ring programming language version 1.5.1 book - Part 34 of 180
The Ring programming language version 1.5.1 book - Part 34 of 180
 
Oh Composable World!
Oh Composable World!Oh Composable World!
Oh Composable World!
 
What are arrays in java script
What are arrays in java scriptWhat are arrays in java script
What are arrays in java script
 
Functional programming from its fundamentals
Functional programming from its fundamentalsFunctional programming from its fundamentals
Functional programming from its fundamentals
 
The Ring programming language version 1.5.3 book - Part 10 of 184
The Ring programming language version 1.5.3 book - Part 10 of 184The Ring programming language version 1.5.3 book - Part 10 of 184
The Ring programming language version 1.5.3 book - Part 10 of 184
 
TDC218SP | Trilha Kotlin - DSLs in a Kotlin Way
TDC218SP | Trilha Kotlin - DSLs in a Kotlin WayTDC218SP | Trilha Kotlin - DSLs in a Kotlin Way
TDC218SP | Trilha Kotlin - DSLs in a Kotlin Way
 
20170509 rand db_lesugent
20170509 rand db_lesugent20170509 rand db_lesugent
20170509 rand db_lesugent
 
Python3 cheatsheet
Python3 cheatsheetPython3 cheatsheet
Python3 cheatsheet
 
The Ring programming language version 1.5.2 book - Part 33 of 181
The Ring programming language version 1.5.2 book - Part 33 of 181The Ring programming language version 1.5.2 book - Part 33 of 181
The Ring programming language version 1.5.2 book - Part 33 of 181
 
Implementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 reduxImplementing virtual machines in go & c 2018 redux
Implementing virtual machines in go & c 2018 redux
 
The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202
 

Destacado

Oblove2009summer Lt.Key
Oblove2009summer Lt.KeyOblove2009summer Lt.Key
Oblove2009summer Lt.Key
riue
 

Destacado (8)

Oblove2009summer Lt.Key
Oblove2009summer Lt.KeyOblove2009summer Lt.Key
Oblove2009summer Lt.Key
 
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
 
10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similar a 関数潮流(Function Tendency)

Useful javascript
Useful javascriptUseful javascript
Useful javascript
Lei Kang
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
Mario Fusco
 
Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)
Will Kurt
 

Similar a 関数潮流(Function Tendency) (20)

Hitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional ProgrammingHitchhiker's Guide to Functional Programming
Hitchhiker's Guide to Functional Programming
 
Functional Programming for OO Programmers (part 2)
Functional Programming for OO Programmers (part 2)Functional Programming for OO Programmers (part 2)
Functional Programming for OO Programmers (part 2)
 
TDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação FuncionalTDC2016SP - Trilha Programação Funcional
TDC2016SP - Trilha Programação Funcional
 
Swift 함수 커링 사용하기
Swift 함수 커링 사용하기Swift 함수 커링 사용하기
Swift 함수 커링 사용하기
 
Useful javascript
Useful javascriptUseful javascript
Useful javascript
 
Scala 2 + 2 > 4
Scala 2 + 2 > 4Scala 2 + 2 > 4
Scala 2 + 2 > 4
 
Monadologie
MonadologieMonadologie
Monadologie
 
JBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java ProgrammersJBUG 11 - Scala For Java Programmers
JBUG 11 - Scala For Java Programmers
 
Elm: give it a try
Elm: give it a tryElm: give it a try
Elm: give it a try
 
Beginning Scala Svcc 2009
Beginning Scala Svcc 2009Beginning Scala Svcc 2009
Beginning Scala Svcc 2009
 
Scala - where objects and functions meet
Scala - where objects and functions meetScala - where objects and functions meet
Scala - where objects and functions meet
 
Kotlin collections
Kotlin collectionsKotlin collections
Kotlin collections
 
7 Habits For a More Functional Swift
7 Habits For a More Functional Swift7 Habits For a More Functional Swift
7 Habits For a More Functional Swift
 
Javascript
JavascriptJavascript
Javascript
 
Begin with Python
Begin with PythonBegin with Python
Begin with Python
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 
Fp in scala part 2
Fp in scala part 2Fp in scala part 2
Fp in scala part 2
 
Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)Intro to Functional Programming Workshop (code4lib)
Intro to Functional Programming Workshop (code4lib)
 
Seminar PSU 10.10.2014 mme
Seminar PSU 10.10.2014 mmeSeminar PSU 10.10.2014 mme
Seminar PSU 10.10.2014 mme
 
Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015Futures e abstração - QCon São Paulo 2015
Futures e abstração - QCon São Paulo 2015
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

関数潮流(Function Tendency)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. js> function add2(x) { return x + 2; } js> add2(5); 7 js> var f = function(x) { return x + 2; } js> f(8); 10 js> (function(x) { return x + 2; })(9) 11
  • 77. js> function add2(x) { return x + 2; } js> add2(5); 7 js> var f = function(x) { return x + 2; } js> f(8); 10 js> (function(x) { return x + 2; })(9) 11
  • 78. js> function add2(x) { return x + 2; } js> add2(5); 7 js> var f = function(x) { return x + 2; } js> f(8); 10 js> (function(x) { return x + 2; })(9) 11
  • 79. js> function add2(x) { return x + 2; } js> add2(5); 7 js> var f = function(x) { return x + 2; } js> f(8); 10 js> (function(x) { return x + 2; })(9) 11
  • 80. js> function add2(x) { return x + 2; } js> add2(5); 7 js> var f = function(x) { return x + 2; } js> f(8); 10 js> (function(x) { return x + 2; })(9) 11
  • 81. Func<int, int> f = (x) => x + 2; var f = function(x) { return x + 2; } f = lambda x: x + 2; f = x -> x + 2 (fset 'f (lambda (x) (+ x 2)))
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 88. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 89. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 90. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 91. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 92. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 93. Func<string, string> foo(Func<DateTime, string> f) { return x => x.ToUpper() + " " + f(DateTime.Today); } Func<DateTime, string> d = x => x.Year + "/" + x.Month; Func<string, string> c = foo(d); string result = c("oblove"); “OBLOVE 2011/7”
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 105. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 106. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 107. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 108. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 109. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 110. int sum(int acc, IEnumerable<int> list) { if (!list.Any()) { return acc; } int head = list.First(); return sum(acc + head, list.Skip(1)); } List<int> ls = new List<int> { 3, 5, 8 }; int result = sum(0, ls);
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117. >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), s) ['C#', 'JAVA', 'PYTHON'] >>> map(lambda x: len(x), s) [2, 4, 6]
  • 118. >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), s) ['C#', 'JAVA', 'PYTHON'] >>> map(lambda x: len(x), s) [2, 4, 6]
  • 119. >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), s) ['C#', 'JAVA', 'PYTHON'] >>> map(lambda x: len(x), s) [2, 4, 6]
  • 120. >>> s = [1, 2, 3, 4, 5, 6] >>> filter(lambda x: x % 2 == 0, s) [2, 4, 6] >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), filter(lambda x: len(x) > 3, s)) ['JAVA', 'PYTHON']
  • 121. >>> s = [1, 2, 3, 4, 5, 6] >>> filter(lambda x: x % 2 == 0, s) [2, 4, 6] >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), filter(lambda x: len(x) > 3, s)) ['JAVA', 'PYTHON']
  • 122. >>> s = [1, 2, 3, 4, 5, 6] >>> filter(lambda x: x % 2 == 0, s) [2, 4, 6] >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), filter(lambda x: len(x) > 3, s)) ['JAVA', 'PYTHON']
  • 123. >>> s = [1, 2, 3, 4, 5, 6] >>> filter(lambda x: x % 2 == 0, s) [2, 4, 6] >>> s = ['C#', 'Java', 'Python' ] >>> map(lambda x: x.upper(), filter(lambda x: len(x) > 3, s)) ['JAVA', 'PYTHON']
  • 124. >>> s = [3, 4, 5, 7, 9] >>> reduce(lambda x, y: x + y, s, 0) 28 >>> reduce( lambda x, y: x + (1 if (y % 2 == 0) else 0), s, 0) 1
  • 125. >>> s = [3, 4, 5, 7, 9] >>> reduce(lambda x, y: x + y, s, 0) 28 >>> reduce( lambda x, y: x + (1 if (y % 2 == 0) else 0), s, 0) 1
  • 126. >>> s = [3, 4, 5, 7, 9] >>> reduce(lambda x, y: x + y, s, 0) 28 >>> reduce( lambda x, y: x + (1 if (y % 2 == 0) else 0), s, 0) 1
  • 127. >>> import itertools >>> s = ['a', 'b', 'c', 'd'] >>> zip(s, itertools.count()) [('a', 0), ('b', 1), ('c', 2), ('d', 3)] >>> filter(lambda x: x[1] != 1, zip(s, itertools.count())) [('a', 0), ('c', 2), ('d', 3)]
  • 128. >>> import itertools >>> s = ['a', 'b', 'c', 'd'] >>> zip(s, itertools.count()) [('a', 0), ('b', 1), ('c', 2), ('d', 3)] >>> filter(lambda x: x[1] != 1, zip(s, itertools.count())) [('a', 0), ('c', 2), ('d', 3)]
  • 129. >>> import itertools >>> s = ['a', 'b', 'c', 'd'] >>> zip(s, itertools.count()) [('a', 0), ('b', 1), ('c', 2), ('d', 3)] >>> filter(lambda x: x[1] != 1, zip(s, itertools.count())) [('a', 0), ('c', 2), ('d', 3)]
  • 130.
  • 131.
  • 132. >>> [x for x in [1, 2, 3, 4, 5] if (x % 2 != 0)] [1, 3, 5] var l = from x in new List<int> { 1, 2, 3, 4, 5 } where x % 2 != 0 select x;
  • 133. >>> [x * 2 for x in [1, 2, 3, 4, 5] if (x % 2 != 0)] [2, 6, 10] var l = from x in new List<int> { 1, 2, 3, 4, 5 } where x % 2 != 0 select x * 2;
  • 134.
  • 135. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 136. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 137. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 138. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 139. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 140. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 141. def cor(f): i = 0 while True: i = f(i) yield i l = cor(lambda x: x + 4) [l.next() for x in range(0, 3)] [4, 8, 12]
  • 142. IEnumerable<int> cor(Func<int, int> f) { int i = 0; while (true) { i = f(i); yield return i; } } var li = cor(x => x + 4); var ls = from x in li.Take(3) select "<" + x.ToString() + ">"; [“<4>”, “<8>”, “<12>”]
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154. import static java.util.Arrays.asList; import static ch.lambdaj.Lambda.*; import static org.hamcrest.Matchers.*; selected = filter(greaterThan(3), asList(1, 2, 3, 4, 5)); [4, 5] List<String> fruits = asList("apple", "orange", "banana"); selected = filter(startsWith("a"), fruits); [“apple”]
  • 155. import static java.util.Arrays.asList; import static ch.lambdaj.Lambda.*; import static org.hamcrest.Matchers.*; selected = filter(greaterThan(3), asList(1, 2, 3, 4, 5)); [4, 5] List<String> fruits = asList("apple", "orange", "banana"); selected = filter(startsWith("a"), fruits); [“apple”]
  • 156. import static java.util.Arrays.asList; import static ch.lambdaj.Lambda.*; import static org.hamcrest.Matchers.*; selected = filter(greaterThan(3), asList(1, 2, 3, 4, 5)); [4, 5] List<String> fruits = asList("apple", "orange", "banana"); selected = filter(startsWith("a"), fruits); [“apple”]
  • 157. import static java.util.Arrays.asList; import static ch.lambdaj.Lambda.*; import static org.hamcrest.Matchers.*; selected = filter(greaterThan(3), asList(1, 2, 3, 4, 5)); [4, 5] List<String> fruits = asList("apple", "orange", "banana"); selected = filter(startsWith("a"), fruits); [“apple”]
  • 158. import static java.util.Arrays.asList; import static ch.lambdaj.Lambda.*; import static org.hamcrest.Matchers.*; selected = filter(greaterThan(3), asList(1, 2, 3, 4, 5)); [4, 5] List<String> fruits = asList("apple", "orange", "banana"); selected = filter(startsWith("a"), fruits); [“apple”]
  • 159. selected = convert(fruits, new Converter<String, String>() { public String convert(String arg0) { return arg0.toUpperCase(); } }); [“APPLE”, “ORANGE”, “BANANA”] Closure c = closure(); { of(System.out).println(var(String.class)); } c.apply("foo"); c.each(fruits);
  • 160. selected = convert(fruits, new Converter<String, String>() { public String convert(String arg0) { return arg0.toUpperCase(); } }); [“APPLE”, “ORANGE”, “BANANA”] Closure c = closure(); { of(System.out).println(var(String.class)); } c.apply("foo"); c.each(fruits);
  • 161. selected = convert(fruits, new Converter<String, String>() { public String convert(String arg0) { return arg0.toUpperCase(); } }); [“APPLE”, “ORANGE”, “BANANA”] Closure c = closure(); { of(System.out).println(var(String.class)); } c.apply("foo"); c.each(fruits);
  • 162. selected = convert(fruits, new Converter<String, String>() { public String convert(String arg0) { return arg0.toUpperCase(); } }); [“APPLE”, “ORANGE”, “BANANA”] Closure c = closure(); { of(System.out).println(var(String.class)); } c.apply("foo"); c.each(fruits);
  • 163. selected = convert(fruits, new Converter<String, String>() { public String convert(String arg0) { return arg0.toUpperCase(); } }); [“APPLE”, “ORANGE”, “BANANA”] Closure c = closure(); { of(System.out).println(var(String.class)); } c.apply("foo"); c.each(fruits);
  • 164.
  • 165. import static fj.data.Array.*; import static fj.function.Integers.*; import fj.data.Array; Array<Integer> a = array(1, 2, 3, 4, 5, 6); Array<Integer> b = a.filter(even).map(add.f(10)); [12, 14, 16]

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n