CS 330 Lecture 39 – Dynamic Typing, Duck Typing, Multiple Inheritance
Agenda what ?s static vs. dynamic vs. duck multiple inheritance traits/mixins Code sum.rkt duck.rb mixin.rb Haiku
CS 330 Lecture 38 – Reflection and Metaprogramming
Agenda what ?s a testing framework in Ruby checking for correct overrides in Java handling wild calls in Ruby Code Certain.rb Usurps.java Supertype.java Subtype.java UsurpsCheck.java weather.json ezserial.rb Haiku
CS 330 Lecture 37 – Promises and Futures
Agenda what ?s what does this do? easier concurrency without side effects call by value, name, need the dangers of the C preprocessor delayed/lazy evaluation promises in Ruby futures in Java What Does This Do? Code compromise.rb Thunk.java Future.java Main.java Haiku
CS 330 Lecture 36 – Memoization
Agenda what ?s program this the benefits of no side-effects memoization in Haskell memoization in Ruby TODO Read about tool selection and the lack of silver bullets: http://blog.awe.sm/2012/12/10/how-to-choose-the-right-tool-for-the-job-awe-sms-language-journey and http://frankchimero.com/blog/no-new-tools. Read on laziness in D: http://dlang.org/lazy-evaluation.html. Go to CERCA (Ojibwe Ballroom, 3rd floor Davies) and talk to some student researchers. Pick one or two or three. 1/4 sheet. Program […]
CS 330 Lecture 35 – Lambdas and Closures Elsewhere
Agenda what ?s blocks in Ruby lambdas and streams in Java lambdas in C++ Code blocks.rb monkey.rb BigButton.java TreeDB.java Haiku
CS 330 Lecture 34 – Fold, Tail Recursion, and Lambdas
Agenda what ?s think about this all, any, sum, product, size, join tail recursion fold/reduce/inject lambdas in Java lambdas in Ruby lambdas in C++ Think About This Code april23.hs Haiku
CS 330 Lecture 33 – Map, Fold, Filter, Lambdas
Agenda what ?s program this three patterns for-each combine filter anonymous functions TODO Read chapter 6 in Learn You a Haskell (http://learnyouahaskell.com/higher-order-functions). 1/4 sheet. Program This Code april21.hs Haiku
CS 330 Lecture 32 – Type Inference, Functions, and Lists
Agenda what ?s type interference in other languages type signatures curried functions infinite lists list processing case statements pattern matching map lambda Think About This Code april18.hs Haiku
CS 330 Lecture 31 – On to Haskell
Agenda what ?s concerns about languages: speed of execution ease of development program correctness think about this the functional paradigm Haskell lists and strings ranges head, cons, tail initials sum add1/abs/threshold for-each pattern, map higher order functions TODO Read chapters 1 and 2 of Learn You a Haskell. 1/4 sheet. Think About This Code april16.hs Haiku
CS 330 Lecture 30 – Logo Translation
Agenda what ?s writing a translator for Logo think about this TODO Extra credit 1/4 sheet: Write a Logo program to demo in class. Download the Eclipse project. In Compiler.java, change the file name to point to your file, or use the JFileChooser. To receive credit, post the Logo source in the comments. Think About […]