Are you sure "You’re just ignoring the evidence that’s right in front of you" is a personal attack?
(def oversubmitting (user ip kind (o url))
(and enforce-oversubmit*
(or (check-key user 'toofast)
(ignored user)
(< (user-age user) new-age-threshold*)
(< (karma user) new-karma-threshold*))
- (len> (recent-items [or (author user _) (is _!ip ip)] 180)
+ (len> (keep [is _!type kind]
+ (recent-items [or (author user _) (is _!ip ip)] 180))
(if (is kind 'story)
(if (bad-user user) 0 1)
(if (bad-user user) 1 10)))))
Now, how are you going to frame this as harassment? Why is this email trying your patience? Why is it a bad thing for me to send you this? (<a> href: "https://news.ycombinator.com" "Hacker News")
That lets you merge s-expression syntax with React syntax quite nicely. (<html>
(<body>
(<div> width: "100%" "Hello, world")))
Here's the output of a REPL session. $ rlwrap bin/lumen-node
> (load "arc.l")
> (print:compile:expand '(<a> href: "https://news.ycombinator.com" "Hacker News"))
React.createElement("a", {href: "https://news.ycombinator.com"}, "Hacker News")
> (print:html (<a> href: "https://news.ycombinator.com" "Hacker News"))
<a href="https://news.ycombinator.com">Hacker News</a>
> (print:html (<html> (<body> (<div> width: "100%" "Hello, world"))))
<html><body><div width="100%">Hello, world</div></body></html>
> (print:html (whitepage "Look ma, no Racket"))
Warning: Each child in an array or iterator should have a unique "key" prop.
Check the top-level render call using <html>. See https://fb.me/react-warning-keys for more information.
in body
<html><body bgcolor="white" alink="blue">Look ma, no Racket</body></html>
You can see it's actually JS, since you get all the same warnings that you'd normally get in a node repl. (It's literally running on Node.)