Skip to content

Instantly share code, notes, and snippets.

@alhassy
Last active April 5, 2019 23:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alhassy/c0081489234962d238ef5f37664452b4 to your computer and use it in GitHub Desktop.
Save alhassy/c0081489234962d238ef5f37664452b4 to your computer and use it in GitHub Desktop.
First McMaster Programming Languages Meet-up

First McMaster Programming Languages Meet-up

– Below are the topics that were discussed, April 4 2019 –

“ProLang Meetup”

  • Wanna learn some cool programming languages?
  • Let’s meet up, once a month, to learn Racket, Clojure, Prolog, OCaml, Coq, & more!
  • Our first meet will be this friday, at McMaster university’s ITB 225 at 4pm.
  • We’re planning on starting with OCaml via the freely available online “Real World OCaml”.
  • Please bring your machine and an open mind to learn!

—-

OCaml
try ocaml online
Rust
Borrow checker, add to thesis lists
  • concurrency and memory management
C#
Linq –programmer friendly monad notation
Python
Decorators
  • sugar for higher order functions
  • allows for aspect oriented programming
MetaOCaml
Typed metaprogramming; ~200 line extension to OCaml.
  • Brackets: <>
  • Expansion: .~
    • rewriting code
  • Run: !
    • evaluating code

E.g.,

B = <1 + 1>
E = < .~B + .~B > = < (1 + 1) + (1 + 1) >  -- at the tree level.
R = !E = 4
    

Note: .~<T> = T, but only inside brackets. Outside

Pure OOP
SmallTalk, Objective-C, and Ruby came into this discussion.

Ruby allows “method missing” akin to Objective-C’s message passing; or Python’s “getAdder”.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment