For me to digest, and to introduce some of the contents from l'VODUJPOBM1SPHSBNNJOH1SJODJQMFTJO4DBMBz
a marvelous course by Martin Odersky (plus alpha).
For me to digest, and to introduce some of the contents from l'VODUJPOBM1SPHSBNNJOH1SJODJQMFTJO4DBMBz
a marvelous course by Martin Odersky (plus alpha). https://www.coursera.org/course/progfun
For me to digest, and to introduce some of the contents from l'VODUJPOBM1SPHSBNNJOH1SJODJQMFTJO4DBMBz
a marvelous course by Martin Odersky (plus alpha). https://www.coursera.org/course/progfun Disclaimar I’m just a novice. Watch the lectures by yourself!
Image: ij There's a strong correspondence between Imperative Programs and Computers. Memory cells, load/store instructions, etc... Pure imperative programming is limited by the "Von Neumann" bottleneck.
Image: How can we avoid conceptualizing programs word by word? High-level abstractions: ideally, develop theories of collections, shapes, strings, ... Let’s concentrate on defining theories for operators expressed as functions.
Image: Functional Programming Restricted sense: programming without mutable variables, assignments, loops, and other imperative control structures. Wider sense: Focusing on the functions.
Image: Don't need to worry about thread safety. ‣ No side effects ‣ Referential transparency Multiple calls. Support concurrency. Can move code up n' down. Can distribute to multicore. ‣ Assignment-less
Image: Don't need to worry about thread safety. ‣ No side effects ‣ Referential transparency Multiple calls. Support concurrency. Can move code up n' down. Can distribute to multicore. ‣ Functions are first-class, ... ‣ Assignment-less
‣ Includes full support of functional programming. Currying, pattern matching, lazy evaluation, tail recursion, immutability, etc. ‣ Static typing. “In Java, when they said typing they meant your fingers.” “You type less, because it is more typed. In a language that is typed less, you type more.” - V. Subramaniam http://www.youtube.com/watch?v=LH75sJAR0hc Image: OO + FP
“ ... if someone had shown me the Programming in Scala book [...] back in 2003 I'd probably have never created Groovy. ” - James Strachan, the creator of Groovy http://macstrac.blogspot.jp/2009/04/ scala-as-long-term-replacement-for.html
“ No other language on the JVM seems as capable of being a ‘replacement of Java’ as Scala, and the momentum behind Scala is now unquestionable. ” - Charles Nutter, the lead developer of JRuby http://blog.headius.com/2009/04/future-part-one.html
“ The most depressing thing on Scala is [...] most people pick up Scala as ‘Java with more concise syntax’. ” - James Gosling https://twitter.com/akarazniewicz/status/11353944609521664
Image: Scalala - developed by Daniel Ramage, who used to be under Chris Manning. Other libraries: Breeze, OptiML, FACTORIE, and more. Natural Language Processing & Machine Learning?
Image: Scalala - developed by Daniel Ramage, who used to be under Chris Manning. Other libraries: Breeze, OptiML, FACTORIE, and more. “Scala and Machine Learning with Andrew McCallum” http://www.youtube.com/watch?v=DkRLTToCw-0 Natural Language Processing & Machine Learning?
Image: Scalala - developed by Daniel Ramage, who used to be under Chris Manning. Other libraries: Breeze, OptiML, FACTORIE, and more. “Scala and Machine Learning with Andrew McCallum” http://www.youtube.com/watch?v=DkRLTToCw-0 NAACL2013 “Tagger in 2hrs” paper - implementation in Scala. https://github.com/dhgarrette/low-resource-pos-tagging-2013 Natural Language Processing & Machine Learning?
Function returning function. Currying Transforming a function that takes multiple arguments in such a way that it can be called as a chain of functions, each with a single argument.
Image: Number x is called a fixed point of a function f if f(x) = x. For some f, we can locate the fixed points by repetitive way: x, f(x), f(f(x)), f(f(f(x))), ... until the value does not vary anymore.
“Why Scala?” Epic. Just watch it. Venkat Subramaniam. www.youtube.com/watch?v=LH75sJAR0hc Image: “Functional Programming Principles in Scala” A bliss online course. Martin Odersky. www.coursera.org/course/progfun Programming in Scala” The Bible, by the creator himself. Martin Odersky, Lex Spoon, & Bill Venners. Programming Scala” An O’Reilly book. First part publicly available online. Dean Wampler & Alex Payne. shop.oreilly.com/product/9780596155964.do “Pragmatic Real-World Scala” A nice overview presentation by Typesafe CTO. Jonas Bonér. www.slideshare.net/jboner/