HN user

FranklinChen

15 karma

http://franklinchen.com/

[ my public key: https://keybase.io/franklinchen; my proof: https://keybase.io/franklinchen/sigs/wyhV6eOWfssv3qLyW2f-Dh8wQdK920f-j4_j2Sh5Mr4 ]

Posts0
Comments9
View on HN
No posts found.

More precisely:

  -- Left reduce
  type Reducer a r = r -> a -> r

  -- Here's where then rank-2 type is needed
  type Transducer a b = forall r . Reducer a r -> Reducer b r

After I dropped out of a theoretical physics Ph.D. program a long time ago, I decided to try to become a computer programmer. I had not taken a single computer science course in college. I was lucky that my parents allowed me to live at home for a year while I spent my entire time teaching myself programming. A friend told me to learn Scheme, so I went through all of SICP using my sister's Mac (I did not own a computer at the time). Then I started to learn C and Unix, hacked a bit with that, learned C++, and applied for jobs after doing some open source work so that I could have something to show. I got hired as a software engineer a year after I started my self-study.

I'm early in the stages of learning Clojure, so here's what I've done so far and what I plan to continue doing.

- I recently joined a local Clojure group on meetup.com and started attending meetings.

- I know the main web sites for the language, including a great searchable documentation site I use.

- I already know Scheme and Common Lisp, so my focus is on grasping the differences with Clojure.

- I just completed the Clojure koans I forked from GitHub.

- I started reading a Clojure book.

- I have played around with the REPL.

- I have started using a serious development environment including Leiningen.

- I will look into a testing framework to use as I experiment further.

- I have some specific tasks I want to try to implement in Clojure involving concurrency to get a feel for what I can usefully get out of this language.

- I'll look at people's code, of course, to get an idea of good and idiomatic practices.