• Liked Bhasker Kode
    keyboard_arrow_down

    Writing and improving tail recursive functions

    Bhasker Kode
    Bhasker Kode
    schedule 2 years ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Brief history of recursion 

    Snippets from a few languages

    What is tail recursion?

    Design choices around recursion

    The importance of tail recursion in erlang

    How do you profile such improvements?

     

     

     

  • Liked Keith Bennett
    keyboard_arrow_down

    Functional Programming in Ruby

    Keith Bennett
    Keith Bennett
    schedule 2 years ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Although Ruby is not known as a functional language, it does support higher order functions in the form of lambdas and procs. Ruby's support for both object oriented and functional approaches, along with its conciseness, clarity, and expressiveness, make it an excellent choice as a general purpose programming language.

    This session, geared toward the functional novice, shows how to implement functional approaches in Ruby, and shows why you would want to.

    Topics covered will include:

    • in testing, using lambdas to verify that certain behaviors do or do not not raise errors
    • lambdas as predicates
    • deferred execution
    • composite functions
    • nested functions
    • using lambdas to hide variables
    • functions that return functions (partial application, currying)
    • lightweight event handling
    • chaining behavior with lambda arrays
    • how lambdas differ from conventional Ruby methods
  • Liked Tejas Dinkar
    keyboard_arrow_down

    Monads you already use (without knowing it)

    Tejas Dinkar
    Tejas Dinkar
    schedule 2 years ago
    Sold Out!
    45 mins
    Talk
    Beginner

    Monads are a little bit like Quantum Physics: If you think you understand quantum mechanics, you don't understand quantum mechanics.

    Monads are very useful for chaining computation together, in a simple way. The best explanation I've heard for them so far is that they are `programmable semicolons'.

    In this session, I'll describe a few patterns that are solved by monads in some FP languages, and how you are already using them.

    Some monads I plan to cover:

    * Maybe Monad (being the easiest to explain)

    * List monad, and how it is used to model non-determinism

    * The state monad

    * The IO monad

    And maybe a few others

  • Liked Aditya Godbole
    keyboard_arrow_down

    Learning (from) Haskell - An experience report

    Aditya Godbole
    Aditya Godbole
    schedule 2 years ago
    Sold Out!
    45 mins
    Experience Report
    Beginner

    Functional programming as a programming style and discipline is useful even in languages which are not pure functional languages. By practising programming in a pure functional language like Haskell, programmers can drastically improve the quality of code when coding in other languages as well.

    The talk is based on first hand experience of using Haskell in internal courses in our organisation to improve code quality.

    This talk will cover Gofer (one of the earliest variants of Haskell) as a teaching tool, including the choice of the language, the features from Haskell that should (and shouldn't) be covered and the obstacles and benefits of the exercise.

     

  • Liked Venkat Subramaniam
    keyboard_arrow_down

    Transforming your C# code to Functional Style

    Venkat Subramaniam
    Venkat Subramaniam
    schedule 2 years ago
    Sold Out!
    45 mins
    Talk
    Intermediate

    Since the introduction of lambda expressions in C#, we have had two different style of programming. Yet, programmers used to the habitual style often find it easy to fall back on those old practices. In this presentation we will take a number of common tasks we code in C#, discuss the downsides of the habitual style, transform it into functional style, and discuss the benefits. We will also discuss some techniques that can help make this transformation easier on everyday projects.

Sorry, no proposals found under this section.