#! stdtmpl | standard #proc generateHTMLPage(c: var TConfigData, currentTab, content, rss: string): string = # result = ""
parallel: var i = 0 while i <= a.high: spawn f(a[i]) spawn f(a[i+1]) # ERROR: cannot prove a[i] is disjoint from a[i+1] # BUT: replace 'i += 1' with 'i += 2' and the code compiles! i += 1
# 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)
# 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)
# 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
# a simple html server import jester, asyncdispatch, htmlgen routes: get "/": resp h1("Hello world") runForever()
View in browser at:
localhost:5000