# if currentTab == "index":
Nim is simple..
# compute average line length
var
sum = 0
count = 0
for line in stdin.lines:
sum += line.len
count += 1
echo("Average line length: ",
if count > 0: sum / count else: 0)
..and type safe...
# create and greet someone
type Person = object
name: string
age: int
proc greet(p: Person) =
echo "Hi, I'm ", p.name, "."
echo "I am ", p.age, " years old."
let p = Person(name:"Jon", age:18)
p.greet() # or greet(p)
C FFI is easy in Nim..
# declare a C procedure..
proc unsafeScanf(f: File, s: cstring)
{.varargs,
importc: "fscanf",
header: "<stdio.h>".}
# ..and use it...
var x: cint
stdin.unsafeScanf("%d", addr x)
Compile and run with:
$ nim c -r example.nim
..and DSLs are too...
# a simple html server
import
jester, asyncdispatch, htmlgen
routes:
get "/":
resp h1("Hello world")
runForever()
View in browser at:
localhost:5000
# end