annotate fib.rhope @ 187:5e752cf2d6b1

Add versions of compile and ctobin scripts that have desktop notifications
author Mike Pavone <pavone@retrodev.com>
date Fri, 07 Oct 2011 00:11:30 -0700
parents a163250b8885
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 /*
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 This example program contains a naive implementation of the Fibonacci function
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 While this isn't a particular fast way to implement the Fibonacci function it does parallize nicely
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 */
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 //Here we define a worker Fib with one input named 'n' and one output named 'out'
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 Fib[n:out]
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 {
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 //The If worker is one way to conditionally execute a piece of code
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 If[[n] < [2]]
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 //This line will execute if [n] < [2] evaluates to Yes
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 out <- 1
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 }{
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 //This line will execute if [n] < [2] evaluates to No
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 //All Worker calls can be expressed in infix, postfix, or prefix notation
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 //So [n]-[1] is the same as -[n,1] and [n,1]-
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 out <- [Fib[[n]-[1]]] + [Fib[[n]-[2]]]
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 }
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 }
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 Main[args]
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 {
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 //Here we get the first command line argument and convert it to a number
86
a163250b8885 Update fib example to reflect language changes
Mike Pavone <pavone@retrodev.com>
parents: 0
diff changeset
26 n <- Int32[[args]Index[1]]
0
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 //Call our Fib worker and Print the result to the terminal
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 Print[Fib[n]]
76568becd6d6 Rhope Alpha 2a source import
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 }