Advertisement
triclops200

Password Prompt, lisp

Sep 21st, 2012
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.85 KB | None | 0 0
  1. (define readline (lambda ()
  2.     (readline_h "")
  3. ))
  4. (define readline_h (lambda(n)
  5.     (let ((ch (read-char)))(cond ((eof-object? ch) n) (#t  
  6.     (let ((c (string ch)))
  7.       (cond
  8.         ((or (string=? c "\n") (string=? c "\r"))
  9.             n
  10.         )
  11.         (#t
  12.             (readline_h (string-append n c))
  13.         )
  14.       )
  15.     )
  16. )))))
  17. (define password (lambda argv
  18.     (cond
  19.         ((= (length argv) 1)
  20.             (password (car argv) -1 "")
  21.         )
  22.         ((= (length argv) 2)
  23.             (password (car argv) (car (cdr argv)) "")
  24.         )
  25.         ((= (length argv) 3)
  26.             (let ((pass (car argv)) (x (car (cdr argv))) (guess (car (cdr (cdr argv)))))
  27.                 (cond
  28.                     ((string=? guess pass)
  29.                         "Correct!\n"
  30.                     )
  31.                     ((= x 0)
  32.                         "Sorry, too many tries.\n"
  33.                     )
  34.                     (#t
  35.                         (let ((n (display "Enter Password: "))) (password pass (- x 1) (readline)))
  36.                     )
  37.                 )
  38.             )
  39.         )
  40.     )
  41. ))
  42. (display (password "Mason" 3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement