N Best Programming Techniques

From Compsci.ca Wiki

(Difference between revisions)
Jump to: navigation, search
m (O'Caml)
(O'Caml)
Line 45: Line 45:
       match n with
       match n with
           1 -> 1
           1 -> 1
-
         | o -> o * fact (o-1);;</pre>
+
         | o -> o * fact (o - 1);;</pre>
 +
 
 +
<pre># let rec fact =
 +
      function
 +
          1 -> 1
 +
        | o -> o * fact (o - 1);;</pre>
 +
 
 +
<pre># let fact n =
 +
      let rec fact' n acc =
 +
          match n with
 +
              1 -> acc
 +
            | o -> fact (o - 1) (n * acc);;</pre>
==SML/NJ==
==SML/NJ==

Revision as of 12:10, 9 July 2006

Ten best programming techniques you're (probably) not using.


Contents


Pattern matching

Common Lisp (destructuring-bind)

[1]> (defun foo (a-list)
        (destructuring-bind (a &rest b) a-list
           (list a b)))
FOO
[2]> (foo '(1 2 3 4))
(1 (2 3 4))
[3]>

Erlang

-module(example).
-export(hello/1]).

hello("wtd") ->
    io:format("Hello, ~s!~n", [Name]);

hello(Name) ->
    io:format("Get out!!~n", []).

Haskell

O'Caml

# let rec fact n =
      match n with
          1 -> 1
        | o -> o * fact (o - 1);;
# let rec fact =
      function
          1 -> 1
        | o -> o * fact (o - 1);;
# let fact n =
      let rec fact' n acc =
          match n with
              1 -> acc
            | o -> fact (o - 1) (n * acc);;

SML/NJ

Templates/Generics

C++/D

Java/Scala

O'Caml/Haskell

Regular expressions

Anonymous functions/closures

Personal tools