Hacker News new | ask | show | jobs
by aidenn0 1706 days ago
Ah, okay. So is there a way to declare that a variable will always be of a given type in Carp?
1 comments

Carp is statically-typed with type inference so writing (the Int x) would be enough for the compiler to forbid any usage of x as another type. Writing (Int.+ x 1) would accomplish the same as Int.+ only accepts Int.

You can also annotate function with a type signature.

  (sig add (Fn [Int Int] Int))
  (defn add [x y] (+ x y)) 
Is the same as:

  (defn add [x y] (the Int (+ (the Int x) (the Int y))))