0
|
1 /*
|
|
2 This example program contains a naive implementation of the Fibonacci function
|
|
3 While this isn't a particular fast way to implement the Fibonacci function it does parallize nicely
|
|
4 */
|
|
5
|
|
6
|
|
7 //Here we define a worker Fib with one input named 'n' and one output named 'out'
|
|
8 Fib[n:out]
|
|
9 {
|
|
10 //The If worker is one way to conditionally execute a piece of code
|
|
11 If[[n] < [2]]
|
|
12 {
|
|
13 //This line will execute if [n] < [2] evaluates to Yes
|
|
14 out <- 1
|
|
15 }{
|
|
16 //This line will execute if [n] < [2] evaluates to No
|
|
17 //All Worker calls can be expressed in infix, postfix, or prefix notation
|
|
18 //So [n]-[1] is the same as -[n,1] and [n,1]-
|
|
19 out <- [Fib[[n]-[1]]] + [Fib[[n]-[2]]]
|
|
20 }
|
|
21 }
|
|
22
|
|
23 Main[args]
|
|
24 {
|
|
25 //Here we get the first command line argument and convert it to a number
|
|
26 //Yes I realize this is incredibly ugly looking
|
|
27 n <- <String@Whole Number[[args]Index[1]]
|
|
28 //Call our Fib worker and Print the result to the terminal
|
|
29 Print[Fib[n]]
|
|
30 }
|