-
Notifications
You must be signed in to change notification settings - Fork 6
A first script
Let's look at an example script. You can find this in the examples
folder of Charm as first.ch
. It has a command greet
, for greeting people, and a function factorial
, for finding factorials. If you can read any code in any language, you will find that you can also read this.
cmd
greet :
get name from Input("What's your name? ")
post "Hello " + name + "!"
def
factorial(n) :
n == 0 : 1
n > 0 : n * factorial n - 1
else : error "can't take the factorial of a negative number"
We can tell Charm to run it in the REPL:
→ hub run "examples/first.ch"
Starting script 'examples/first.ch' as service '#0'.
#0 →
Because this particular script doesn't have a main
command, it doesn't actually do anything on initialization. Instead it supplies us with a service (automatically named #0
since we didn't name it ourselves) which knows the definitions of greet
and factorial
:
#0 → greet
What's your name? Marmaduke
Hello Marmaduke!
#0 → factorial 6
720
#0 →
Hopefully that's just what you expected it to do. But you may be wondering what exactly is meant by hub run
, as we haven't mentioned the hub yet. This will be dealt with on the next page.
🧿 Pipefish is distributed under the MIT license. Please steal my code and ideas.