本文探讨了Common Lisp的变量机制,比较了Lisp-1与Lisp-2的区别,解释了绑定、词法作用域与动态作用域的原理及其混合使用。Common Lisp的函数与数据命名空间分离,词法作用域在函数定义时确定,而动态作用域依赖于调用链。通过示例展示了两种作用域的不同表现。
用Lisp写slides Jun 2, 2018 0. Lisp, Scheme, or Racket? Lisp,诞生于1958年,世界上第二古老的编程语言,仅次于Fortran。在之后的漫长岁月里,Lisp发生了很多改变,也产生了很多所谓的“方言”,当现在的我们提到Lisp时,我们更多地是指Lisp系的语言。在这些“方言”中,最著名的莫过于Common...
本文介绍了Lisp的本质及其代码生成能力,强调了其语法抽象和元编程特性。通过XML和Ant构建系统,展示了代码作为数据的视角。文章探讨了从手动编码到低代码平台的不同代码生成层次,并讨论了生成式AI的局限性与应用。Lisp的灵活性和强大功能使其在编程领域独树一帜。
Lisp是一种优雅且灵活的编程语言,对计算机科学影响深远,奠定了函数式编程和宏系统的基础。freeCodeCamp.org的YouTube频道提供了一门关于Common Lisp的初学者课程,涵盖REPL、列表、宏和闭包等主题,适合希望提升编程技能的人。
一些公司仍使用(S)FTP进行文件传输。对于Common Lisp,cl-ftp库虽然未维护,但功能良好。示例代码展示了FTP文件发送。对于SFTP,作者使用lftp工具,并通过环境变量管理密码。作者还开发了lftp-wrapper工具,简化文件传输过程,满足开发需求。
C++宏功能有限,容易出错;Rust宏强大但使用复杂;Lisp宏功能强大且简单;Lisp宏系统更具优势;C++和Rust宏系统有独特的优势和应用。
近期更换了学习 lisp 的教材,进度可喜可贺,虽不能独立写出 package,然而在看 lisp 的代码时,开始具备一定的阅读能力,知道是什么顺序,大概会是什么
近期更换了学习 lisp 的教材,进度可喜可贺,虽不能独立写出 package,然而在看 lisp 的代码时,开始具备一定的阅读能力,知道是什么顺序,大概会是什么作用。如果不知道,还可以直接查询函数。 近期的学习教材主要是《Practical Common Lisp》,我认为它的安排很好,一上来先教人安装了 lisp...
前言 原文: Lisp, Smalltalk, and the Power of Symmetry 译文 和许多黑客一样,我第一门真正爱上的编程语言是 Lisp。保罗·格雷厄姆(Paul Graham)激发了我对这种语言的
emacs-lisp中提供了一堆 =seq-*= 函数对序列进行操作,但却缺少类似 Python 中的 =range= 函数那样的生成序列的函数。 在网上搜索了一下才知道 emacs-lisp 中是可以使用 =number-sequence= 来实现类似的功能的。 #+begin_example number-sequence is a compiled Lisp function...
list 视角 wikipedia LISP “LISP"名称源自“列表处理器”(英语:List Processor)的缩写。列表是Lisp的主要数据结构之
他们面对未知 总是充满勇气 因为lisp用户有s表达式和递归 而smalltalk用户有对象/消息隐喻和沉浸式环境 尽管问题是新的,思考方式和环境却
近期在阅读Alan Kay推荐的《LISP 1.5 Programmers Manual》 因为S表达式是树形结构的数据 总是可以分解和步进的 这就是递归在lisp中如此强大的原
A quick summary on how to set up Lisp Development environment in Neovim.
介绍Common Lisp中的变量是如何绑定的,以及什么是Lisp–1和Lisp–2More…
简述 LISP 中描述相等的断言主要有 eq, eql, equal 和 equalp. 他们对应的判断条件各不相同. 逐个分析 断言 eq (eq x y) 仅当 x 和 y 是同一对象时才返回 true
本文是宏系列的第二篇文章,侧重于实战,对于新手建议先阅读宏系列的理论篇,之后再来看本文。当然如果你有一定基础,也可以直接阅读本文。 其次,希望读者能把本文的 Clojure 代码手动敲到 REPL 里面去运行、调试,直到完全理解。 Code as data 在理论篇中,介绍了宏(macro)的本质:在编译时期运行的函数。宏相对于普通函数,具有如下特点:
宏(macro)是 Lisp 语言中最重要的武器,它可以自动生成运行时的代码。宏也是编写领域特定语言(DSL)的利器,可以在不改动语言本身的基础上,增加新的程序构造体,这在其他语言中是不可能。比如,现在比较流行的同步方式写异步代码的 async/await,在非 Lisp 语言需要语言本身支持,但是在 Lisp 里面可以通过几个宏来解决,可以参考:core.async。
最近在看 MIT 公开课-计算机程序的构造和解释,即使你像我一样根本没学过 lisp 也能看懂下面这段代码,这段代码展示了怎么实现加法运算,这种我们几乎从来不会去想为什么的问题,这几行简单的代码告诉我们如何计算出 3 + 4 的值 由 皮亚诺 算术定义的求 x 和 y 之和的过程 ; Define a [+] processor (define (+ x y) (if (= x...
完成下面两步后,将自动完成登录并继续当前操作。