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