在今天的xkcd网站上,以下内容在<script language ="scheme">标记中显示为笑话
那么下面的代码做什么/代表什么?
(define
(eval exp env)
(cond ((self-evaluating? exp) exp)
((variable? exp)
(lookup-variable-value exp env))
((quoted? exp)
(text-of-quotation exp))
((assignment? exp)
(eval-assignment exp env))
((definition? exp)
(eval-definition exp env))
((if? exp)
(eval-if exp env))
((lambda? exp)
(make-procedure
(lambda-parameters exp)
(lambda-body exp) env))
((begin? exp)
(eval-sequence (begin-actions exp) env))
((cond? exp)
(eval (cond->if exp) env))
((application? exp)
(apply (eval (operator exp) env)
(list-of-values (operands exp) env)))
(else (error "Common Lisp or Netscape Navigator 4.0+ Required" exp))))
Run Code Online (Sandbox Code Playgroud) 我的webpack2配置中有一个下划线模板加载器,用babel编译.它在编译时失败,因为with它在代码编译代码中使用.以下是我的加载器中的相关部分webpack.config.js:
我在装载程序下有这个部分:
{
test: /\.html$/,
use: [
{
loader: 'babel-loader',
query: {
presets: [
['es2015', { modules: false }],
'es2016',
'es2017',
'stage-3',
],
},
},
{
loader: 'ejs-loader',
},
],
};
Run Code Online (Sandbox Code Playgroud)
这就是我想要的,我得到的:
ERROR in ./src/table/row.html
Module build failed: SyntaxError: 'with' in strict mode (5:0)
3 | var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
4 | function print() { __p += __j.call(arguments, '') }
> 5 | with (obj) {
| ^
6 …Run Code Online (Sandbox Code Playgroud) 有办法保存Common Lisp或Scheme的REPL状态吗?
谢谢
在执行我的代码期间,我在不同的Scheme实现中遇到以下错误:
球拍:
application: not a procedure;
expected a procedure that can be applied to arguments
given: '(1 2 3)
arguments...:
Run Code Online (Sandbox Code Playgroud)
的Ikarus:
Unhandled exception
Condition components:
1. &assertion
2. &who: apply
3. &message: "not a procedure"
4. &irritants: ((1 2 3))
Run Code Online (Sandbox Code Playgroud)
鸡:
Error: call of non-procedure: (1 2 3)
Run Code Online (Sandbox Code Playgroud)
开局:
*** ERROR IN (console)@2.1 -- Operator is not a PROCEDURE
((1 2 3) 4)
Run Code Online (Sandbox Code Playgroud)
MIT计划:
;The object (1 2 3) is not applicable.
;To continue, call RESTART with an option number: …Run Code Online (Sandbox Code Playgroud) 我刚刚设置了Racket并且一直在尝试翻译.
但是,我似乎无法使用箭头(或Ctrlp/ Ctrln为此)上下命令历史记录或 用于Ctrlr搜索它.
这甚至支持?我可以使用该功能构建它吗?
来自Python背景我非常习惯这些功能,并希望将它们也用于Racket.
每次使用 Quicklisp 时,我都觉得我在玩彩票。我找不到包含包列表和文档的网页。
正如我搜索一个具体的例子(ql:system-apropos "random-access-list"),因为I F ound SRFI-101的一种实现,它是基于Okasakis纯功能性的数据结构,在CL。我试过这个:
[1]> (ql:system-apropos-list "random-access-lists")
(#<QL-DIST:SYSTEM random-access-lists / random-access-lists-20120208-git / quicklisp 2016-03-18>)
[2]>
Run Code Online (Sandbox Code Playgroud)
我知道该名称random-access-lists不是很具体,因此可能还有其他具有该名称的包。上次我不太幸运,找到了 4 个部分匹配,其中最匹配的不是我要找的包。
如何找到有关搜索结果的更多信息?
我正在学习Scheme,并使用repl.it 的在线解释器。我无法理解为什么会返回#f:
(eq? '() 'nil) ; ==> #f
Run Code Online (Sandbox Code Playgroud) 我有一个哈希表
(setf ht (make-hash-table))
里面包含了一些项目,例如(setf (gethash 'first ht) 'first-value),(setf (gethash 'second ht) 'second-value),...
此外,我有一个testarity 的谓词,评估为T或NIL.我想检查哈希表的所有第一个条目是否ht满足test谓词.例如,如果哈希表只包含上面给出的两个条目,我想知道它的评估(and (test 'first) (test 'second)).有一个简单的方法吗?
我正在尝试编写一个程序,它根据给定的数字返回Pell数字序列.
例如,(pellNumb 6)应该返回一个列表(0 1 2 5 12 29 70)
到目前为止这是我的代码.我能够计算数字,但我无法跳过双递归.
(defun base (n)
(if (= n 0)
0
(if (= n 1)
1)))
(defun pellNumb (n)
(if (or (= n 0) (= n 1))
(base n)
(let ((x (pellNumb (- n 2))))
(setq y (+ (* 2 (pellNumb (- n 1))) x))
(print y))))
Run Code Online (Sandbox Code Playgroud)
输出(pellNumb 4)是2 2 5 12,这是因为我递归(pellNumb 2)两次.
有没有办法跳过它,并将这些值存储在列表中?
谢谢!
我正在开发一个函数,该函数将根据给定数字 x 将日期序列(或其他任何内容)拆分为包含在向量内的多个序列。
(date1 date2 date3 date4 date5 date6 date7)
Run Code Online (Sandbox Code Playgroud)
因此,给定上面的日期列表并传入变量 2,它将产生下面的向量。
[(date1 date2) (date3 date4) (date5 date6) (date7)]
Run Code Online (Sandbox Code Playgroud)
到目前为止我的代码如下,但它返回的只是一个包含 nil 的向量。
(defn date-splitter [date-count dates x]
(loop [i date-count, current-split dates, split-dates (vector)]
(if (<= i x)
(conj split-dates (get current-split 1))
(let [s (split-at x current-split)]
(recur (int (- i x)) (get s 1) (conj split-dates (get s 0)))))))
Run Code Online (Sandbox Code Playgroud)
我还查看了 split-with 函数,认为当索引除以 x 的模数为零时,我可以使用它来拆分序列,但我对此没有任何运气。
任何帮助将不胜感激。
大卫。