#+TITLE: Eshel Yaron
#+AUTHOR: Eshel Yaron
-#+OPTIONS: ^:{}
+#+OPTIONS: toc:nil ^:{}
Welcome to [[./index.org][my website]], the one true source of reliable curated information about me and my activities.
#+begin_src prolog
?- likes('Eshel', Stuff).
- Stuff = 'logic ️programming';
+ Stuff = 'logic programming';
Stuff = 'linguistics';
Stuff = 'cognition';
Stuff = 'functional programming';
:CUSTOM_ID: projects
:END:
+** [[https://git.sr.ht/~eshel/dotfiles][GNU Emacs literate configuration]]
+:PROPERTIES:
+:CUSTOM_ID: emacsconf
+:END:
+
+My personal configuration for GNU Emacs, written in as a [[https://en.wikipedia.org/wiki/Literate_programming][Literate
+Program]] with =Org-mode= and =Babel=. An online version is also
+published as [[file:esy.org][an HTML webpage on this website]].
+
** [[https://github.com/eshelyaron/debug_adapter][SWI-Prolog Debug Adapter Protocol Server]]
:PROPERTIES:
:CUSTOM_ID: debug-adapter
:CUSTOM_ID: eshellisp
:END:
-A simple [[https://git.sr.ht/~eshel/eshellisp][Lisp interpreter implemented in SWI-Prolog]].
+A [[https://git.sr.ht/~eshel/eshellisp][Scheme Lisp interpreter implemented in SWI-Prolog]].
#+begin_src sh
- $ cat fib.eshellisp
- (define fib (n)
- (if (<= n 1) 0 (fib1 0 1 1 n)))
-
- (define fib1 (f1 f2 i to)
- (if (<= to i) f2 (fib1 f2 (+ f1 f2) (+ i 1) to)))
+ $ cat scheme/repl.scm
+ (define repl () (write (eval (read))) (repl))
+ (repl)
- (fib 250)
- $ time eshellisp fib.eshellisp
- % 7896325826131730509282738943634332893686268675876375
- eshellisp fib.eshellisp 0.05s user 0.01s system 92% cpu 0.066 total
+ $ ./eshellisp scheme/repl.scm
+ % (cons (+ 1 2) 4)
+ % (3 . 4)
#+end_src
** [[https://git.sr.ht/~eshel/flymake-swi-prolog][flymake-swi-prolog.el]] and [[https://git.sr.ht/~eshel/diagnostics.pl][diagnostics.pl]]
}
.org-builtin {
/* font-lock-builtin-face */
- color: #8f0075;
+ color: #f78fe7;
}
.org-button {
/* button */
}
.org-comment {
/* font-lock-comment-face */
- color: #505050;
+ color: #a8a8a8;
}
.org-comment-delimiter {
/* font-lock-comment-delimiter-face */
- color: #505050;
+ color: #a8a8a8;
}
.org-company-echo {
}
}
.org-doc {
/* font-lock-doc-face */
- color: #093060;
+ color: #b0d6f5;
}
.org-eldoc-highlight-function-argument {
/* eldoc-highlight-function-argument */
}
.org-keyword {
/* font-lock-keyword-face */
- color: #f01b6b;
+ color: #b6a0ff;
}
.org-lazy-highlight {
/* lazy-highlight */
/* Code block theme */
@import 'modus-operandi-theme.css';
-:root {
- --color-scheme-background: white;
- --color-scheme-text: black;
- --color-scheme-secondary: #333;
- --color-scheme-shadow: #eee;
-
-}
-
-/* Light Theme */
-@media (prefers-color-scheme: light) {
- :root {
- --color-scheme-background: white;
- --color-scheme-text: black;
- --color-scheme-secondary: #333;
- --color-scheme-shadow: #eee;
- }
-}
-/* Dark Theme */
-@media (prefers-color-scheme: dark) {
- :root {
- --color-scheme-background: #222;
+:root {
+ --color-scheme-background: black;
--color-scheme-text: white;
--color-scheme-secondary: #eee;
--color-scheme-shadow: #333;
- }
-
- /* Make links readable */
- a:link { color: lightblue }
- a:visited { color: lightblue }
- a:hover { color: lightblue }
}
+a:link { color: lightblue }
+a:visited { color: lightblue }
+a:hover { color: lightblue }
+
body {
margin-top: 0;
margin-left: auto;
margin-right: auto;
padding-left: 1em;
padding-right: 1em;
- max-width: 48rem;
+ max-width: 52rem;
color: var(--color-scheme-text);
background: var(--color-scheme-background);
}
#content {
- max-width: 46rem;
+ max-width: 50rem;
margin-left: auto;
margin-right: auto;
}
border-bottom: 1px dotted var(--color-scheme-secondary);
}
-nav {
- margin-top: 1.4em;
-}
-
#preamble a {
text-transform: uppercase;
border: 1px solid var(--color-scheme-secondary);
padding-right: 0.3em;
}
-nav a:link { color: var(--color-scheme-text); }
-nav a:visited { color: var(--color-scheme-text); }
-nav a:hover {
- color: var(--color-scheme-background);
- background: var(--color-scheme-text);
-}
+nav a:link { font-size: large; }
+nav h2 { font-size: 2em; }
figure {
border: 2px solid var(--color-scheme-text);
}
h1 {
- font-size: 3em;
+ font-size: 2.5em;
}
h2 {
- font-size: 2.5em;
+ font-size: 2em;
margin-bottom: 0.2em;
}
h3 {
- font-size: 1.7em;
+ font-size: 1.5em;
margin-bottom: 0.2em;
}