Tag: functional programming

SE-Radio Episode 269: Phillip Carter on F#

Filed in Episodes by on September 27, 2016 3 Comments
SE-Radio Episode 269: Phillip Carter on F#

Eberhard Wolff talks with Phillip Carter about F#.  A multi-paradigm programming language that supports object-oriented, imperative, and functional programming, F# can be used for a broad variety of applications. It’s an especially good fit for parallel programming and DSLs. Type interference allows F# code to be type safe even if no types are declared in […]

Continue Reading »

SE-Radio Episode 257: Michael Nygard on Clojure in Practice

Filed in Episodes by on May 17, 2016 4 Comments
SE-Radio Episode 257: Michael Nygard on Clojure in Practice

Michael Nygard of “Release It!” fame talks with Stefan Tilkov about his experience using the Clojure programming language. Topics include the tool chain and development process, the Clojure learning curve, and on-boarding new developers. Michael explains the similarities and differences compared to typical OO languages when implementing domain logic, and uses both game development and […]

Continue Reading »

Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language

Filed in Episodes by on May 30, 2014 4 Comments
Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language

Robert talks to Dr. Anil Madhavapeddy of the Cambridge University (UK) Systems research group about the OCaml language and the Mirage cloud operating system, a microkernel written entirely in OCaml. The outline includes: history of the evolution from dedicated servers running a monolithic operating system to virutalized servers based on the Xen hypervisor to micro-kernels; […]

Continue Reading »

Episode 84: Dick Gabriel on Lisp

Filed in Episodes by on January 22, 2008 22 Comments
Episode 84: Dick Gabriel on Lisp

In this Episode we’re talking with Dick Gabriel on Lisp. We started by looking at artificial intelligence as the historic context of Lisp, the goals AI tried to reach, and how Lisp was supposed to help reach those.

We then discussed the language itself, starting with the Data As Program / Program As Data concept that is a foundation for Lisp. Then we discussed adding a meta-circular interpreter, programming as language development, and the blurred boundary between language and frameworks (because everything uses the same syntax). We then talked about Lisp’s type system and the importance of macros to extend the language.

The next section concerned CLOS, the Common Lisp Object System and its important concepts: generic functions, multimethods, mixins, and method combination. We also briefly looked at the meta-object protocol but agreed this is a topic for a separate episode. After a discussion about the various dialects of Lisp and Scheme, we concluded the Lisp discussion by explaining why Lisp did not really catch on (“AI Winter”) and Lisp’s role in today’s industry.

We ended the episode with a couple of details about Dick’s other life as a poet and his Poem a Day effort.

Make sure you listen till the end, where we have added a song about Lisp (courtesy of Prometheus Music.)

Continue Reading »

Episode 62: Martin Odersky on Scala

Filed in Episodes by on July 16, 2007 4 Comments
Episode 62: Martin Odersky on Scala

In this Episode we talk about the Scala language with its creator Martin Odersky. Scala is a language that fuses object oriented and functional programming. Martin started out by providing a two-minute overview over the language, and then talked a little bit about its history. We then discussed the basics of functional programming. The main part of the episode features a discussion of some of the important features of the Scala language:

  • Case Classes and Pattern Matching
  • Multiple Inheritance and Compound Types, Traits, Mixins
  • Closures
  • Functions as types, “Function pointers”, Anonymous functions
  • Higher Order Functions
  • Currying
  • (Sequence) Comprehensions
  • Generics
  • Type Bounds (Upper, Lower)
  • Static/Dynamic Typing, Type Inference
  • Operators
  • Implicits

We then talked about Scala’s actors library, a highly scalable concurrency package. The last part of the episode covered some more general topics, such as where and how Scala is used today, IDE support and the user and developer community. We concluded the episode by looking at current development and next steps in Scala language evolution.

Continue Reading »