Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Common Lisp can do that:

    CL-USER> (defvar i 1)
    I
    CL-USER> (declaim (type (integer 1 10) i))
    (I)
    CL-USER> i
    1
    CL-USER> (setf i 8)
    8
    CL-USER> i
    8
    CL-USER> (setf i (1+ i))
    9
    CL-USER> (setf i (1+ i))
    10
    CL-USER> (setf i (1+ i))
    ; Evaluation aborted on #<TYPE-ERROR expected-type: (INTEGER 1 10) datum: 11>.
    CL-USER> i
    10


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

Search: