草庐IT

javascript - 获取对运算符后面的 JavaScript 函数对象的引用

这是一个lisp过程,它简单地将“a”加到“b”的绝对值上:(define(a-plus-abs-bab)((if(>b0)+-)ab))我认为这很漂亮,我正在尝试找到用JavaScript编写它的最佳方式。但是我的JavaScript代码并不漂亮:varplus=function(a,b){returna+b;};varminus=function(a,b){returna-b;};varaPlusAbsB=function(a,b){return(b>0?plus:minus)(a,b);}主要问题是我不能像使用lisp那样使用+和-符号作为对它们真正表示的函数的引用。谁能想出一种

javascript - 我想实现一个学习 SICP 的方案解释器

我正在看书StructureandInterpretationofComputerPrograms,我想逐渐编写一个方案解释器。你知道最容易阅读(和简短)的方案的实现吗?我将用C编写JavaScript。 最佳答案 SICP本身有几个部分详细介绍了如何构建元循环解释器,但我建议您阅读以下两本书以获得有关Scheme解释器的更好资源:ProgrammingLanguages:ApplicationandInterpretation和EssentialsofProgrammingLanguages.它们既易于阅读,又能逐步指导您构建解释

javascript - 使用 Javascript 的无层 Web 框架?

Links是一种类似lisp的函数式Web编程语言/框架,可以轻松编写编译为服务器端代码、客户端JS和HTML的单段代码,从而使编写Web应用程序变得更加容易。由于客户端和服务器端之间确实没有区别,因此他们称之为“无层”编程。随着Server-sideJS的出现,有没有可以和JS媲美的框架呢?请注意,我的意思不仅仅是用相同的语言编写服务器端和客户端代码,而是编写可以相互调用并生成HTML的服务器端和客户端函数。看看Links或HOP更好地了解我在说什么。是否有适用于JavaScript的无层Web框架? 最佳答案 我读过一些关于Ja

javascript - 除了 First Class Functions 和 Lexical Scoping,JavaScript 与 Scheme 实现有什么共同之处?

我一直想知道为什么DouglasCrockford总是将JavaScript与Scheme进行比较。是的,JS的设计者打算成为Scheme;但是除了一流的函数支持和词法作用域(已损坏)之外,JS与Scheme有哪些共同点使其成为“披着C外衣的Lisp”? 最佳答案 我想到的另一件事是在整个语言和库中普遍使用单一无处不在的数据结构:conslists在Scheme的情况下,maps(在ECMAScript中称为对象。不仅ECMAScript具有一流的过程这一事实,而且这些过程是唯一的抽象机制。(或者更准确地说是封装机制。)

javascript - JavaScript 提供了哪些函数式编程方面的子集和类似 Lisp 的特性?

开门见山,在https://stackoverflow.com/questions/4696618/is-haskell-a-lisp?answertab=votes#tab-top,有KevinCantu的评论说:Yeah,movingbeyondthesyntaxalone,JavaScriptisprobablymoreofaLispthanHaskell.(OriginallyconceivedasaSchemeimplementation...)另外,在LambdatheUltimate:ALisptoJavaScriptCompilerin100Lines,他们说:It's

Common Lisp 的 XML 数据绑定(bind)

我有兴趣找到一个代码生成工具,给定一组XSD文件,它将从XSD生成一组CLOS类,生成从XML到CLOS的反序列化例程,并生成相应的序列化例程。我能找到的最接近的项目是CL-SOAP,但它似乎处于早期阶段。我需要支持XSD元素,包括xsd:sequence、xsd:choice,最好是xsd:group,最好是xsd:all。对命名空间的支持是必不可少的。有什么建议吗? 最佳答案 据我所知,还没有这样的东西。如果您找到或写下一个,请告诉我! 关于CommonLisp的XML数据绑定(bi

xml - 在 LISP 中使用任意定界符解析 S 表达式

(我对Lisp还很陌生,不知道如何做到这一点,但足够熟悉,知道必须是一个简单的方法。)最近读到的一篇文章让我很感兴趣,这篇文章提倡将日志文件存储为Lisp风格的S表达式,这样日志文件就可以很容易地转换为DSL。这让我开始考虑其他DSL的类似语法,但我遇到了障碍。解析分隔符为括号的s表达式很容易"(my-functionfoobar)"可以从文件/流中读取并简单地评估。如果XML真的只是一个S表达式,难道不应该有一种简单的方法来转换像这样简单的东西吗foobaretc-1etc-2进入(functionfoobaretc-1etc-2)我可以用字符串操作技术伪造这种行为(哎呀,正则表达式

xml - 如何使用 Emacs Lisp 编辑 xml/dom

如果可能的话,我如何在EmacsLisp中以编程方式编辑xml数据?我需要做的是以编程方式将新节点添加到xml中的任意位置:(xml-add-elementxml"hello"(xml-element-by-tagnamexml"child"))编辑:我将xml解析为lisp结构并使用xml.el和dom.el进行编辑,但现在我需要将lisp结构转回xml数据。 最佳答案 这是我的版本,用于将从xml-parse*函数创建的s表达式转换回xml字符串。希望对您有所帮助!https://github.com/upgradingdave

xml - Common Lisp Closure XML 包中广播处理程序的无效输出

按照我为上一个问题提供的答案HowtoinjectelementsintocharactercontentwithClosureXML?我实现了cxml:sax-proxy处理程序的一个子类(广播处理程序的一个特例)。不幸的是,看起来像是库中的错误,但它尝试生成具有内部文档类型定义的XML,但该文档是无效的XML。也就是说,使用以下命令运行解析器:(with-open-file(out#P"teste.xml":if-exists:supersede:direction:output)(let((h(make-instance'preproc:chained-handler(cxml:

xml - 有什么东西是用于 s 表达式的,就像 XPATH 用于 XML 一样吗?

如果可能的话,我正在寻找一个通用的lispimpl。(此外,我不想将sexp转换为XML并在结果上使用xpath。) 最佳答案 回答有点晚,但似乎http://www.cliki.net/spath正是您要寻找的。 关于xml-有什么东西是用于s表达式的,就像XPATH用于XML一样吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4353053/