Advertisement
Guest User

Untitled

a guest
Dec 21st, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.76 KB | None | 0 0
  1. (use-modules (ice-9 rdelim))
  2.  
  3. (define (parse-line line)
  4.   (let* ((parse (string-tokenize line))
  5.      (len (length parse))
  6.      (monkey (string->symbol (string-trim-right (car parse) #\:))))
  7.     (cond
  8.      ((= 2 len) (list 'define (list monkey) (string->number (cadr parse))))
  9.      ((= 4 len) (list 'define (list monkey) (list
  10.                       (string->symbol (caddr parse))
  11.                       (list (string->symbol (cadr parse)))
  12.                       (list (string->symbol (cadddr parse))))))
  13.      (#t (error "Malformed input")))))
  14.  
  15. (define (parse-proc l)
  16.   (let ((line (read-line)))
  17.     (if (eof-object? line)
  18.     l
  19.     (parse-proc (append l (list (parse-line line)))))))
  20.  
  21. (define code (with-input-from-file "input.txt" (lambda () (parse-proc '()))))
  22. (primitive-eval  `(let () ,@code (root)))
  23.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement