Hacker News new | past | comments | ask | show | jobs | submit login

That is also the case in Carp, x being an expression here.



Ah, okay. So is there a way to declare that a variable will always be of a given type in Carp?


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))))




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: