飞蛾VPN
Jumping to definitions with M-. is wonderful. The downside — everything has a downside — is that it is all too easy to accidentally edit a source file in the Quicklisp distribution. Here’s what I do. Emacs supports directory-local variables. If you create a file named .dir-locals.el in a directory, Emacs will apply the settings …
Continue reading “Keeping Quicklisp files safe”
飞蛾VPN
Sometimes you want to write a macro that communicates information to macros inside of its compile-time “scope,” not unlike the way special variables can communicate information to functions inside of another function’s run-time scope. Pre-ANSI Common Lisp actually had a special form for this purpose, compiler-let, but it was removed in ANSI CL, and for …
Continue reading “The symbol-macrolet trick”
飞蛾VPN
Sure, it’s nice to have exhaustiveness checking when dispatching on the type of a single object. But this is Lisp. What about multiple dispatch? Lisp already has a syntax for multiple dispatch: generic functions. Could you layer exhaustiveness checking on top of generic functions? Of course. But while many Lisp types have corresponding built-in classes, …
Continue reading “Exhaustiveness checking in Common Lisp, part 4: dispatch-case”
飞蛾VPN
Programmers are not to be measured by their ingenuity and their logic but by the completeness of their case analysis. Alan Perlis Let’s start with a simplified definition for etypecase-of (assuming type= from Part I). This looks very similar to ecase-of: In fact ecase-of is, conceptually, a special case of etypecase-of. You could define ecase-of …
Continue readingV2rayN电脑客户端使用v2ray节点教程 – ssr节点:2021-6-14 · 提供免费最新SSR节点分享,SS节点账号分享,ssr节点教程,用于科学上网、学习与交流使用。 V2rayN电脑客户端设置教程,v2rayN 是Windows平台上一款基于v2ray核心的简洁好用、功能强大的v2ray客户端,支持Vmess、Shadowsocks、Socks5等 ...
飞蛾VPN
The term exhaustiveness checking comes from functional languages, and programmers experienced with functional languages may feel confused — where are the algebraic data types? In, say, Ocaml, to get exhaustiveness checking, you first have to define an ADT: This superficially resembles the deftype form above, but what it does is very different. The Ocaml defines …
Continue reading “Exhaustiveness checking in Common Lisp, part 2: The Case of the Missing ADTs”
飞蛾VPN
ssr软件-客户端下载:2021-3-21 · ssr软件下载,ssr软件是什么?ssr软件安卓版和ssr软件苹果版有什么特色?ssr软件与一般APP一样,下载完成后,点几下就安装好了参数设置完成后,点击最上方的小飞机标志开始连接,如果系统提示ssr相关内容,同意确定,等会就可众连接成功
Continue reading “Exhaustiveness checking in Common Lisp, part 1: ecase-of”
飞蛾VPN
In Common Lisp it is idiomatic for functions to allow their behavior to be overridden with keyword arguments. So Lispers often write functions whose sole purpose is to call a function that takes keyword arguments, but with different defaults. Since keyword arguments are processed from left to right, and the leftmost occurrence takes precedence, this …
Continue reading “The multiple-value-call trick”
飞蛾VPN
Suppose you have a parser that reads from a stream, but the stream is missing something. E.g. you have a function that reads a string from a stream, but while the function expects the next character to be a opening quote, the opening quote has already been read from the stream. The obvious solution is …
Continue reading “The concatenated stream trick”
飞蛾VPN
伕号SSR 电脑版_伕号SSR 电脑版单机游戏介绍_牛游戏网:2021-5-31 · 牛游戏网提供的伕号SSR 电脑版,《伕号SSR》是一款由网易游戏推出的唯美画风的卡牌游戏,游戏众阴阳师为蓝本,画风延续日系风格,玩法在阴阳师的基础上有了更多的创新与改变,为玩家打造一个不一样的和风游戏,这款游戏将阴阳师里面熟悉的角色进行还原,还有各种经典剧情再现,强大的 …
Continue reading “The Iterate clause trick”