Update sbcl config
This commit is contained in:
parent
4a88081668
commit
564cdf1c84
2 changed files with 69 additions and 1 deletions
1
sbcl/.gitignore
vendored
1
sbcl/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
.sbclrc
|
|
69
sbcl/.sbclrc
Normal file
69
sbcl/.sbclrc
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
;; -*- mode: lisp; -*-
|
||||||
|
|
||||||
|
;;; The following lines added by ql:add-to-init-file:
|
||||||
|
#-quicklisp
|
||||||
|
(let ((quicklisp-init (merge-pathnames ".local/share/quicklisp/setup.lisp"
|
||||||
|
(user-homedir-pathname))))
|
||||||
|
(when (probe-file quicklisp-init)
|
||||||
|
(load quicklisp-init)))
|
||||||
|
|
||||||
|
(defun primep (number)
|
||||||
|
(unless (= number 1)
|
||||||
|
(let ((max (floor (sqrt number))))
|
||||||
|
(or (= number 2)
|
||||||
|
(and (not (evenp number))
|
||||||
|
(= (length (loop for i from 3 upto max by 2
|
||||||
|
if (integerp (/ number i))
|
||||||
|
if (< 1 i number)
|
||||||
|
do (return-from primep nil)
|
||||||
|
else
|
||||||
|
collect i))
|
||||||
|
0))))))
|
||||||
|
|
||||||
|
(defun next-prime (number)
|
||||||
|
(loop for i from (1+ number)
|
||||||
|
if (primep i)
|
||||||
|
return i))
|
||||||
|
|
||||||
|
(defun previous-prime (number)
|
||||||
|
(loop for i from (1- number) downto 0
|
||||||
|
if (primep i)
|
||||||
|
return i))
|
||||||
|
|
||||||
|
(defun primes (number)
|
||||||
|
(do ((prime 2 (next-prime prime))
|
||||||
|
(primes (list)))
|
||||||
|
((> prime number) (reverse primes))
|
||||||
|
(setf primes (cons prime primes))))
|
||||||
|
|
||||||
|
(defun prime-factors (number)
|
||||||
|
(do ((i 1 (1+ i)))
|
||||||
|
((> i (/ number 2)) (list number))
|
||||||
|
(let ((d (/ number i)))
|
||||||
|
(if (and (integerp d) (primep i))
|
||||||
|
(return (cons i (prime-factors d)))))))
|
||||||
|
|
||||||
|
(defun largest-prime-factor (number)
|
||||||
|
(apply #'max (prime-factors number)))
|
||||||
|
|
||||||
|
(defun start-local-server ()
|
||||||
|
(ql:quickload "usocket")
|
||||||
|
(usocket:socket-server
|
||||||
|
"localhost" 4006
|
||||||
|
(lambda (stream)
|
||||||
|
(handler-case
|
||||||
|
(let ((*standard-input* stream)
|
||||||
|
(*standard-output* stream)
|
||||||
|
(type (read stream)))
|
||||||
|
(case type
|
||||||
|
(:eval
|
||||||
|
(princ (eval (read)))
|
||||||
|
(force-output))
|
||||||
|
(:shell
|
||||||
|
(loop
|
||||||
|
(fresh-line)
|
||||||
|
(princ "CL> " stream)
|
||||||
|
(force-output)
|
||||||
|
(print (eval (read)))))))
|
||||||
|
(end-of-file () nil)))
|
||||||
|
() :in-new-thread t :multi-threading t))
|
Loading…
Reference in a new issue