Gustek

<gustek@riseup.net>
PGP Key
My code

Welcome.

I'm Gustek, a 2nd year CS student living in France. I mostly program in Rust, C and Common Lisp but I enjoy some more functional stuff as well.

I enjoy learning about languages, I speak French, Polish, English and Spanish and I'm able to gibber in Russian.

I wrote this page using a single 68KiB Lisp expression because it's fun:

((lambda (html &rest pages)
   (dolist (page pages)
     (let ((fname (car page)) (node (cdr page)))
       (with-open-file (out fname :direction :output :if-exists :supersede :if-does-not-exist :create)
	 (format out "~a~%~a" (if html "" "")
		 (labels ((translate-node (node)
			    (if (atom node) node
				(let ((tag (car node)) (body (cdr node)))
				  (if (and (not (null body)) (atom body)) body
				      (if (null body) (format nil "<~a />" tag)
					  (multiple-value-bind (attr body) ((lambda (body)
                                						 (let ((attr '()) (cont '()) (i 0))
                                						   (loop while (< i (length body))
                                						      do (let ((current (nth i body)))
                                							   (if (eq current '@)
                                								 (setq attr (cons `(,(nth (incf i) body) . ,(nth (incf i) body)) attr))
                                								 (setq cont (cons current cont)))
                                								 (incf i)))
                                						   (values attr (nreverse cont))))
                                					       body)
                                					    (format nil "<~a~{ ~a~}>~%~{~a~}~%~%" tag
                                						    (mapcar #'(lambda (p) (format nil "~a=\"~a\"" (car p) (cdr p))) attr)
                                						    (mapcar #'(lambda (n) (translate-node n)) body)
                                						    tag))))))))
		   (translate-node node)))))))
 t ; we want some html here
 page1 page2 ... pagen)


Pseudo Science


Software

Nothing too interesting but it's honest work. This is a portfolio as much as it's a todo-list


Other Stuff