first push
This commit is contained in:
commit
c395899009
7
assoc.lisp
Normal file
7
assoc.lisp
Normal file
@ -0,0 +1,7 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(defparameter *accounts*
|
||||
'((Admin (sweatshirt))
|
||||
(User1 (samsepi0l))))
|
||||
|
||||
(format t "Admin data: ~a ~%" (assoc 'admin *accounts*))
|
28
bubblesort.lisp
Normal file
28
bubblesort.lisp
Normal file
@ -0,0 +1,28 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(defvar li (list 4 8 9 2 1))
|
||||
|
||||
(defvar array nil)
|
||||
|
||||
(push li array)
|
||||
|
||||
(defparameter inc 1)
|
||||
|
||||
(defvar next (nth inc li))
|
||||
|
||||
(dolist (el li)
|
||||
(if (> el next)
|
||||
(progn
|
||||
(defparameter tmp el)
|
||||
(setq el next)
|
||||
(setq next tmp)
|
||||
(setq inc (+ inc 1))
|
||||
(if (< (nth (- inc 2) li) el))
|
||||
(push el array))
|
||||
(progn
|
||||
(setq inc (+ inc 1))
|
||||
(push next array)))
|
||||
(format t "~a~%" array))
|
||||
|
||||
|
||||
(format t "~a" li)
|
23
convo.lisp
Normal file
23
convo.lisp
Normal file
@ -0,0 +1,23 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Hello there, what is your name? ~%")
|
||||
(defvar *name* (read))
|
||||
|
||||
(defun greetings (name)
|
||||
(format t "Nice to meet you ~a, i'm emacs. ! ~%" name)
|
||||
(format t "How is your day? ~%")
|
||||
(defvar how (read))
|
||||
(defparameter good 'good)
|
||||
(defparameter bad 'bad)
|
||||
|
||||
(if (eq how good)
|
||||
(progn
|
||||
(format t "I'm glad to hear that your day was ~a, ~a! ~%" how name)
|
||||
(format t "I hope you continue to have a ~a day! Till next time! ~%" how)))
|
||||
(if (eq how bad)
|
||||
(progn
|
||||
(format t "I'm sorry to hear that your day was ~a, ~a... ~%" how name)
|
||||
(format t "I hope your day is better next time, ~a. ~%" name)))
|
||||
(format t "That's interesting to hear, ~a. Let's aim for a good day next time! ~%" name))
|
||||
|
||||
(greetings *name*)
|
18
lisp.lisp
Normal file
18
lisp.lisp
Normal file
@ -0,0 +1,18 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Whats your name? ~%")
|
||||
|
||||
(defvar *name* (read))
|
||||
|
||||
(defun greetings (name)
|
||||
(format t "It's nice to meet you, ~a, I'm emacs. ~%" name)
|
||||
(format t "How are you, ~a? ~%" name)
|
||||
(defparameter good 'good)
|
||||
(defvar how (read))
|
||||
(if (eq how good)
|
||||
(progn
|
||||
(format t "I'm glad to hear you are ~a! ~%" how)
|
||||
(format t "Have a great rest of your day, ~a!" name))
|
||||
(format t "just because your day was ~a now doesn't mean it will be ~a forever! ~%" how how)))
|
||||
|
||||
(greetings *name*)
|
18
loginv1.lisp
Normal file
18
loginv1.lisp
Normal file
@ -0,0 +1,18 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Enter your username: ")
|
||||
(defvar *username* (read))
|
||||
(format t "Enter your password: ")
|
||||
(defvar *password* (read))
|
||||
|
||||
(setq use 'sweatshirt)
|
||||
(setq pass 'Daemons0!)
|
||||
|
||||
(defun varify (username password)
|
||||
(if (and (eq username use) (eq password pass))
|
||||
(progn
|
||||
(format t "Thank you for logging in, ~a! ~%" username)
|
||||
(format t "Will check again soon! ~%"))
|
||||
(format t "You are not authorized to use this device, ~a." username)))
|
||||
|
||||
(varify *username* *password*)
|
20
loginv2.lisp
Normal file
20
loginv2.lisp
Normal file
@ -0,0 +1,20 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Username: ")
|
||||
(defvar *username* (read))
|
||||
(format t "Password: ")
|
||||
(defvar *password* (read))
|
||||
|
||||
(defvar *user* "sweatshirt")
|
||||
(defvar *pass* "Daemons0!")
|
||||
|
||||
(defparameter *accounts* (list :key 1 :username 'sweatshirt :password 'Daemons0!))
|
||||
|
||||
(defparameter user (getf *accounts* :username))
|
||||
(defparameter pass (getf *accounts* :password))
|
||||
|
||||
|
||||
(if (and (eq *username* user) (eq *password* pass))
|
||||
(progn
|
||||
(format t "You are now logged in as, ~a" *username*))
|
||||
(format t "Something went wrong."))
|
33
loginv3.lisp
Normal file
33
loginv3.lisp
Normal file
@ -0,0 +1,33 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Username: ")
|
||||
(defvar *username* (read))
|
||||
(format t "Password: ")
|
||||
(defvar *password* (read))
|
||||
|
||||
|
||||
(defparameter *accounts* nil)
|
||||
|
||||
(defvar admin1 (list :username 'sweatshirt :password 'Daemons0!))
|
||||
(defvar user1 (list :username 'samsepi0l :password 'Daemons))
|
||||
(defvar user2 (list :username 'mogad0n :password 'something))
|
||||
|
||||
(push admin1 *accounts*)
|
||||
(push user1 *accounts*)
|
||||
(push user2 *accounts*)
|
||||
|
||||
(defparameter varify 'false)
|
||||
(defparameter inc 0)
|
||||
|
||||
(dolist (acc *accounts*)
|
||||
(defparameter check1 (getf (nth inc *accounts*) :username))
|
||||
(defparameter check2 (getf (nth inc *accounts*) :password))
|
||||
(if (and (equalp *username* check1) (equalp *password* check2))
|
||||
(setq varify 'true)
|
||||
(progn
|
||||
(setq inc (+ inc 1)))))
|
||||
|
||||
(if (equalp varify 'true)
|
||||
(progn
|
||||
(format t "Thank you so much for logging in, ~a~%" *username*))
|
||||
(format t "try again~%"))
|
13
loop-practice.lisp
Normal file
13
loop-practice.lisp
Normal file
@ -0,0 +1,13 @@
|
||||
(defvar *print-case* :downcase)
|
||||
|
||||
(defvar admin (list :username "sweatshirt" :password "Daemons0!"))
|
||||
|
||||
(defvar *accounts* nil)
|
||||
|
||||
(push admin *accounts*)
|
||||
|
||||
(dolist (account *accounts*)
|
||||
(format t "~{ ~a : ~a ~}~%" account)
|
||||
(if (and (member "sweatshirt" account) (member "Daemons0!" account))
|
||||
(progn
|
||||
(format t "Fact.~%"))))
|
8
pe1.lisp
Normal file
8
pe1.lisp
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
(defvar *sum* 0)
|
||||
|
||||
(loop for x from 1 to 999 do
|
||||
(if (or (zerop(mod x 3)) (zerop (mod x 5)))
|
||||
(progn
|
||||
(setq *sum* (+ *sum* x)))))
|
||||
(format t "~d ~%" *sum*)
|
10
pe3.lisp
Normal file
10
pe3.lisp
Normal file
@ -0,0 +1,10 @@
|
||||
(defvar div 2)
|
||||
(defvar num 317584931803)
|
||||
|
||||
(loop
|
||||
(if (zerop(mod num div))
|
||||
(progn
|
||||
(setq num (/ num div))
|
||||
(setq div (- div 1)))
|
||||
(setq div (+ div 1)))
|
||||
(when (< num 1) (return div)))
|
13
tes.lisp
Normal file
13
tes.lisp
Normal file
@ -0,0 +1,13 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(format t "Username: ")
|
||||
(defvar *username* (read))
|
||||
(format t "Password: ")
|
||||
(defvar *password* (read))
|
||||
|
||||
(defparameter tes1 'sweatshirt)
|
||||
(defparameter tes2 'Daemons0!)
|
||||
|
||||
(terpri)
|
||||
|
||||
(format t "~a~%" (equalp tes1 *username*))
|
39
text-gamev1.lisp
Normal file
39
text-gamev1.lisp
Normal file
@ -0,0 +1,39 @@
|
||||
(setq *print-case* :downcase)
|
||||
|
||||
(defvar *username* nil)
|
||||
(defvar *password* nil)
|
||||
(defvar *new-username* nil)
|
||||
(defvar *new-password* nil)
|
||||
|
||||
(defparameter *accounts* nil)
|
||||
|
||||
(defvar inc 0)
|
||||
|
||||
|
||||
(loop (setq cm (read))
|
||||
(if (eq cm 'q)
|
||||
(return))
|
||||
|
||||
(if (eq cm 'create)
|
||||
(progn
|
||||
(format t "New Username: ")
|
||||
(setq *new-username* (read))
|
||||
(format t "New password: ")
|
||||
(setq *new-password* (read))
|
||||
(push (list :username *new-username* :password *new-password*) *accounts*)
|
||||
))
|
||||
|
||||
(if (eq cm 'login)
|
||||
(progn
|
||||
(format t "Username: ")
|
||||
(setq *username* (read))
|
||||
(format t "Password: ")
|
||||
(setq *password* (read))
|
||||
(dolist (acc *accounts*)
|
||||
(defparameter check1 (getf (nth inc *accounts*) :username))
|
||||
(defparameter check2 (getf (nth inc *accounts*) :password))
|
||||
(if (and (equalp *username* check1) (equalp *password* check2))
|
||||
(progn
|
||||
(format t "Thank you for logging in, ~a~%" *username*)
|
||||
(format t "~a is now ready to play!~%" *username*))
|
||||
(format t "please type <create> to create an account. Otherwise, enter some valid information."))))))
|
116
webserver.lisp
Normal file
116
webserver.lisp
Normal file
@ -0,0 +1,116 @@
|
||||
(defparameter *server* (make-instance 'tbnl:easy-acceptor
|
||||
:port 33333
|
||||
:address "0.0.0.0"))
|
||||
(defun start ()
|
||||
(tbnl:start *server*))
|
||||
|
||||
(defun stop()
|
||||
(tbnl:stop *server*))
|
||||
|
||||
(defparameter *css*
|
||||
"body {
|
||||
background: #f0f2f5;
|
||||
font-family: monospace;
|
||||
}
|
||||
.nav-wrapper {
|
||||
background-color: blue;
|
||||
padding: 15px;
|
||||
}
|
||||
.form-wrapper {
|
||||
position: relative;
|
||||
top: 55px;
|
||||
padding: 15px 10px;
|
||||
background-color: #fff;
|
||||
width: 400px;
|
||||
border-radius: 5px;
|
||||
box-shadow: 8px 8px 8px lightgrey;
|
||||
}
|
||||
.username {
|
||||
position: relative;
|
||||
display: flex;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border: 1px solid lightgrey;
|
||||
border-radius: 5px;
|
||||
padding: 15px;
|
||||
font-size: 1.2rem;
|
||||
width: 95%;
|
||||
}
|
||||
.password {
|
||||
position: relative;
|
||||
display: flex;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border: 1px solid lightgrey;
|
||||
border-radius: 5px;
|
||||
padding: 15px;
|
||||
font-size: 1.2rem;
|
||||
width: 95%;
|
||||
}
|
||||
.nav-wrapper a {
|
||||
margin-left: 15px;
|
||||
margin-right: 15px;
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
color: #fff;
|
||||
}
|
||||
.nav-wrapper a:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.title-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.content {
|
||||
font-size: 1.1rem;
|
||||
}")
|
||||
|
||||
(tbnl:define-easy-handler (main :uri "/")
|
||||
()
|
||||
(spinneret:with-html-string
|
||||
(:html
|
||||
(:head
|
||||
(:style
|
||||
*css*))
|
||||
(:body
|
||||
(:div :class "whole-wrapper"
|
||||
(:div :class "nav-wrapper"
|
||||
(:a :class "home-link" :href "/"
|
||||
"Home")
|
||||
(:a :class "about-link" :href "/about"
|
||||
"About"))
|
||||
(:div :class "title-wrapper"
|
||||
(:h1 :class "title"
|
||||
"Welcome to my CL server!"))
|
||||
(:div :class "form-wrapper"
|
||||
(:form :class "login" :action "/members" :method "POST"
|
||||
(:input :type "text" :class "username" :name "username" :placeholder "Username")
|
||||
(:br)(:br)
|
||||
(:input :type "password" :class "password" :name "password" :placeholder "Password"))))))))
|
||||
|
||||
(tbnl:define-easy-handler (about :uri "/about")
|
||||
()
|
||||
(spinneret:with-html-string
|
||||
(:html
|
||||
(:head
|
||||
(:style
|
||||
*css*))
|
||||
(:body
|
||||
(:div :class "whole-wrapper"
|
||||
(:div :class "nav-wrapper"
|
||||
(:a :class "home-link" :href "/"
|
||||
"Home")
|
||||
(:a :class "about-link" :href "/about"
|
||||
"About"))
|
||||
(:div :class "content-wrapper"
|
||||
(:div :clsas "about-title-wrapper"
|
||||
(:h1 "About this site"))
|
||||
(:div :class "content-wrapper"
|
||||
(:p :class "content"
|
||||
"I am an intermediate programmer who is new-ish to common assoc.lisp
|
||||
and am loving it so far! So much so that I have decided to practice
|
||||
making a webserver; though i usually do this with node js, handling
|
||||
request with response, i decided to do the same with common lisp!
|
||||
I will be using hunchentoot, spinneret and lass(maybe?) to create
|
||||
this site; I hope you enjoy :)"))))))))
|
Loading…
Reference in New Issue
Block a user