SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Functional Programming
     101 in Groovy



            Evgeny Goldin
  DevCon Tel-Aviv, February 14, 2013
Evgeny Goldin


Java developer since 2000
FP enthusiast: Scheme, Perl, Groovy, Scala
GroovyMag, Gr8Conf
SCM at Trademob
github.com/evgeny-goldin/
@evgeny_goldin
Are you FP-er?
http://thecoolnessfactor.com/2013/01/winds-change/changes-ahead-exit-sign/
In this session

     Why FP?
 FP building blocks
   FP in Groovy
   FP candidates
In this session


Mindset switch
Why FP?
Because shit happens
.. or do we make it happen?
Average code is complex
                     Side-effects go wild
             Logical steps are interleaved
                 Changes are error-prone




http://www.guardian.co.uk/sustainable-business/research-confirms-health-impacts-tire
Average state is fragile and shared
 Exposed for updates in any way
Can easily mutate under your feet
       Changes are error-prone




  http://www.bbcgoodfood.com/content/knowhow/glossary/egg/
Parallelism is hard
              “The Multicore Revolution”
       Threads + shared mutable state :(
                Changes are error-prone




http://www.russel.org.uk/Presentations/euroPython2010_theMulticoreRevolution.pdf
       http://jalopnik.com/5965581/this-is-how-not-to-parallel-park-on-a-hill
Changes are error-prone
http://lenta.ru/sitemap.xml



https://bitbucket.org/evgenyg/devcon-2013/src/master/sitemap-imperative.groovy
https://bitbucket.org/evgenyg/devcon-2013/src/master/sitemap-functional.groovy
Modularity
Break the flow into distinct steps
  Do one thing and do it well
Flexibility
Shuffle your steps
Testability
Ensure correctness of your steps
Parallelism
Scale your steps!
FP building blocks
(only a subset this time)
Recursion
               List = head() + tail()
  State is hidden, built up on stack
              Recursion elimination
https://bitbucket.org/evgenyg/devcon-2013/src/master/recursion.groovy
Immutable State
Moving parts are minimized
   No defensive copying
   Caching, Parallelism
Immutable State
      New state = f ( old state )
Changes are isolated, constructor only
   g ( i + 1 ), g ( list + ‘element’ )
Immutable State
 Persistent data structures
      Updated in place
Yields a new immutable state
Git




http://git-scm.com/book/en/Git-Branching-What-a-Branch-Is
First-class functions
          Anonymous functions
         Higher-order functions
Command/Template/Visitor => “Free Willy”
No side-effects
 sin, cos, max, min, sum, sort
Opens doors for optimizations
     Caching, Parallelism
Mindset switch
        Imperative => Functional
          Variables => Values
            Classes => Functions
Explicit instructions => Declarative definitions
       How (Steps) => What (Result)
Mindset switch
Pointers, memory allocations, GC - check
           State management
               Iterations
      Filtering, conversion, folding
               Parallelism
FP in Groovy
Gradual
                                        conversion



http://www.buysgmath.com/p/200/eph-gradually-difficulty-mathematics-1/
final j = 5
@Immutable
Anonymous Functions
     a.k.a. Closures
Filter - findAll()
                                        Map - collect()
                                        Fold - inject()

     https://bitbucket.org/evgenyg/devcon-2013/src/master/functions.groovy


http://www.barlifeuk.com/index.php/2012/08/enter-the-janneau-armagnac-three-
                        musketeers-inspired-competition/
find()
     any()
    every()
    each()
eachWithIndex()
  takeWhile()
  dropWhile()
Collection
     Range
      Map
     Array
     String
       ...
Object.iterator()
Categories, Meta, Extensions
public	
  static	
  <T>	
  Collection<T>	
  findAll(Collection<T>	
  self,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Closure	
  filter)	
  

public	
  static	
  <T>	
  List<T>	
  collect(Collection<?>	
  self,
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Closure<T>	
  transform)

public	
  static	
  T	
  inject(Collection<T>	
  self,	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Closure<V>	
  closure)

public	
  static	
  <T>	
  T	
  	
  	
  	
  	
  	
  	
  head(List<T>	
  self)


public	
  static	
  <T>	
  List<T>	
  tail(List<T>	
  self)

...

                                 org.codehaus.groovy.runtime.DefaultGroovyMethods
Memoization
                       a.k.a. Caching
https://bitbucket.org/evgenyg/devcon-2013/src/master/memoization.groovy
Trampoline
Recursion => Loop (no stack overflow)
https://bitbucket.org/evgenyg/devcon-2013/src/master/trampoline.groovy
GPars!
                  Data Parallelism
https://bitbucket.org/evgenyg/devcon-2013/src/master/gpars.groovy
eachParallel()
collectParallel()
findAllParallel()
everyParallel()
 foldParallel()
 sumParallel()
  gmemoize()
FP Candidates
Loops => any / every




https://bitbucket.org/evgenyg/devcon-2013/src/master/loops.groovy
                http://en.hdyo.org/tee/questions
Split, filter, map, fold



 https://bitbucket.org/evgenyg/devcon-2013/src/master/map-reduce.groovy
https://bitbucket.org/evgenyg/devcon-2013/src/master/check-versions.groovy




       http://www.cityofwaterfalls.ca/hermitage_cascade.html
Open your eyes
pinboard.in/u:evgenyg/t:fp/

 Arturo Herrero - Functional Programming with Groovy

            Neal Ford - Functional Thinking

        Martin Odersky - FP Principles in Scala

             Erik Meijer - FP Fundamentals

MIT - Structure and Interpretation of Computer Programs

   University of Washington - Programming Languages

           Stanford - Programming Paradigms
Thank you!




 @evgeny_goldin
evgenyg@gmail.com

Weitere ähnliche Inhalte

Andere mochten auch

Alimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAlimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAntonietta Palmieri
 
Power of Personal Branding for Brands - Pubcon 2015
Power of Personal Branding for Brands - Pubcon 2015Power of Personal Branding for Brands - Pubcon 2015
Power of Personal Branding for Brands - Pubcon 2015Mark Traphagen
 
Sharing data from clinical and medical research
Sharing data from clinical and medical researchSharing data from clinical and medical research
Sharing data from clinical and medical researchChristoph Steinbeck
 
Engage 2013 - Why Upgrade to v10 Tag
Engage 2013 - Why Upgrade to v10 TagEngage 2013 - Why Upgrade to v10 Tag
Engage 2013 - Why Upgrade to v10 TagWebtrends
 
Grafico diario del dax perfomance index para el 09 07-2012
Grafico diario del dax perfomance index para el 09 07-2012Grafico diario del dax perfomance index para el 09 07-2012
Grafico diario del dax perfomance index para el 09 07-2012Experiencia Trading
 
Tick Achieve - How To Get Stuff Done
Tick Achieve - How To Get Stuff DoneTick Achieve - How To Get Stuff Done
Tick Achieve - How To Get Stuff DoneKevin Duncan
 
獅子山下女同志
獅子山下女同志獅子山下女同志
獅子山下女同志lalacamp07
 
Система Постройком
Система ПостройкомСистема Постройком
Система Постройкомkulibin
 
Ready Player One - Week 2 Check-in
Ready Player One - Week 2 Check-inReady Player One - Week 2 Check-in
Ready Player One - Week 2 Check-incenter4edupunx
 
Guidelines to evaluate blended learning programs
Guidelines to evaluate blended learning programsGuidelines to evaluate blended learning programs
Guidelines to evaluate blended learning programsReasoningMind
 
Газоанализатор ООО НПП Импульс
Газоанализатор ООО НПП ИмпульсГазоанализатор ООО НПП Импульс
Газоанализатор ООО НПП Импульсkulibin
 

Andere mochten auch (19)

Alimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAlimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria Tomas
 
Alat ukur
Alat ukurAlat ukur
Alat ukur
 
Power of Personal Branding for Brands - Pubcon 2015
Power of Personal Branding for Brands - Pubcon 2015Power of Personal Branding for Brands - Pubcon 2015
Power of Personal Branding for Brands - Pubcon 2015
 
LinkedIn Endorsements
LinkedIn EndorsementsLinkedIn Endorsements
LinkedIn Endorsements
 
Sharing data from clinical and medical research
Sharing data from clinical and medical researchSharing data from clinical and medical research
Sharing data from clinical and medical research
 
Engage 2013 - Why Upgrade to v10 Tag
Engage 2013 - Why Upgrade to v10 TagEngage 2013 - Why Upgrade to v10 Tag
Engage 2013 - Why Upgrade to v10 Tag
 
Grafico diario del dax perfomance index para el 09 07-2012
Grafico diario del dax perfomance index para el 09 07-2012Grafico diario del dax perfomance index para el 09 07-2012
Grafico diario del dax perfomance index para el 09 07-2012
 
Brochure about Stanford Corporate Governance Research Initiative
Brochure about Stanford Corporate Governance Research InitiativeBrochure about Stanford Corporate Governance Research Initiative
Brochure about Stanford Corporate Governance Research Initiative
 
Tick Achieve - How To Get Stuff Done
Tick Achieve - How To Get Stuff DoneTick Achieve - How To Get Stuff Done
Tick Achieve - How To Get Stuff Done
 
2.7 mbonfim
2.7 mbonfim2.7 mbonfim
2.7 mbonfim
 
獅子山下女同志
獅子山下女同志獅子山下女同志
獅子山下女同志
 
Система Постройком
Система ПостройкомСистема Постройком
Система Постройком
 
Artikel FI
Artikel FIArtikel FI
Artikel FI
 
Ready Player One - Week 2 Check-in
Ready Player One - Week 2 Check-inReady Player One - Week 2 Check-in
Ready Player One - Week 2 Check-in
 
1. cronograma 2014
1. cronograma 20141. cronograma 2014
1. cronograma 2014
 
Guidelines to evaluate blended learning programs
Guidelines to evaluate blended learning programsGuidelines to evaluate blended learning programs
Guidelines to evaluate blended learning programs
 
Blender
BlenderBlender
Blender
 
Газоанализатор ООО НПП Импульс
Газоанализатор ООО НПП ИмпульсГазоанализатор ООО НПП Импульс
Газоанализатор ООО НПП Импульс
 
「旅のことば」について
「旅のことば」について「旅のことば」について
「旅のことば」について
 

Ähnlich wie Functional Programming in Groovy

The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5Wim Godden
 
Building resilient services in go
Building resilient services in goBuilding resilient services in go
Building resilient services in goJaehue Jang
 
The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5Wim Godden
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVMSylvain Wallez
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third PluginJustin Ryan
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance TriviaNikita Popov
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Paul King
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsIndicThreads
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...Guillaume Laforge
 
Groovy And Grails Introduction
Groovy And Grails IntroductionGroovy And Grails Introduction
Groovy And Grails IntroductionEric Weimer
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6Wim Godden
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpmsom_nangia
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpmwilburlo
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuffjeresig
 
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentAdvanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentMike Brittain
 

Ähnlich wie Functional Programming in Groovy (20)

What's New in Groovy 1.6?
What's New in Groovy 1.6?What's New in Groovy 1.6?
What's New in Groovy 1.6?
 
The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5The why and how of moving to PHP 5.4/5.5
The why and how of moving to PHP 5.4/5.5
 
Swt J Face 3/3
Swt J Face 3/3Swt J Face 3/3
Swt J Face 3/3
 
Groovy Maven Builds
Groovy Maven BuildsGroovy Maven Builds
Groovy Maven Builds
 
Building resilient services in go
Building resilient services in goBuilding resilient services in go
Building resilient services in go
 
The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5The why and how of moving to php 5.4/5.5
The why and how of moving to php 5.4/5.5
 
Native Java with GraalVM
Native Java with GraalVMNative Java with GraalVM
Native Java with GraalVM
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third Plugin
 
PHP Performance Trivia
PHP Performance TriviaPHP Performance Trivia
PHP Performance Trivia
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applications
 
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
 
Groovy And Grails Introduction
Groovy And Grails IntroductionGroovy And Grails Introduction
Groovy And Grails Introduction
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpm
 
Psgi Plack Sfpm
Psgi Plack SfpmPsgi Plack Sfpm
Psgi Plack Sfpm
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuff
 
groovy & grails - lecture 7
groovy & grails - lecture 7groovy & grails - lecture 7
groovy & grails - lecture 7
 
Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
 
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentAdvanced Topics in Continuous Deployment
Advanced Topics in Continuous Deployment
 

Mehr von Evgeny Goldin

Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayEvgeny Goldin
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkinsEvgeny Goldin
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions AnatomyEvgeny Goldin
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about GradleEvgeny Goldin
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing GroovyEvgeny Goldin
 

Mehr von Evgeny Goldin (8)

Alexa skills
Alexa skillsAlexa skills
Alexa skills
 
Polyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and PlayPolyglot Gradle with Node.js and Play
Polyglot Gradle with Node.js and Play
 
Node.js meets jenkins
Node.js meets jenkinsNode.js meets jenkins
Node.js meets jenkins
 
Release It!
Release It!Release It!
Release It!
 
Spock Extensions Anatomy
Spock Extensions AnatomySpock Extensions Anatomy
Spock Extensions Anatomy
 
10 Cool Facts about Gradle
10 Cool Facts about Gradle10 Cool Facts about Gradle
10 Cool Facts about Gradle
 
Start Writing Groovy
Start Writing GroovyStart Writing Groovy
Start Writing Groovy
 
Maven Plugins
Maven PluginsMaven Plugins
Maven Plugins
 

Kürzlich hochgeladen

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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 businesspanagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 educationjfdjdjcjdnsjd
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Kürzlich hochgeladen (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Functional Programming in Groovy