假设我有一个带有三个参数的过程foo,并返回一个全部加倍的列表:
(define (foo a b c)
(list (* 2 a ) (* 2 b) (* 2 c)))
Run Code Online (Sandbox Code Playgroud)
我希望能够做的是创建另一个接受列表的过程,并使用list元素作为参数调用foo,如下所示:
(define (fooInterface myList)
...)
(fooInterface (list 1 2 3))
Run Code Online (Sandbox Code Playgroud)
问题是,我不想写fooInterface,假设foo总是有3个参数.也就是说,如果我向foo添加一个额外的参数,只要传入的列表有3个元素,fooInterface仍然可以工作.
我很困惑这段代码是如何工作的:
(define m (list 1 2 3 '(5 8)))
(let ((l (cdr m)))
(set! l '(28 88))) ==>(1 2 3 (5 8))
(define o (list 1 2 3 '(5 8)))
(let ((l (cdr o)))
(set-car! l '(28 88))) ==> (1 (28 88) 3 (5 8))
Run Code Online (Sandbox Code Playgroud)
为什么不(set! l '(28 88)))更新m?
如何更改用cons向量制作的列表?
((p b p b p b p b)
(b p b p b p b p)
(p b p b p b p b)
(b p b p b p b p)
(p b p b p b p b)
(b p b p b p b p)
(p b p b p b p b)
(b p b p b p b p))
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
(define b "black")
(define w "white")
(define (board)
(letrec ((ti
(lambda (x) … 我读到,互斥锁和信号量维护一个等待进程列表,并在当前线程完成关键部分时将其唤醒.互斥体和信号量如何做到这一点?它们不会干扰流程调度程序决策吗?
我正在使用具有"高级学生"语言设置的Racket,并且我很难尝试编写一个函数来执行函数,执行n次并报告每次运行所用的时间.这是我到目前为止所得到的.
(define (many n fn)
(cond
[(= n 0) true]
[else (many (sub1 n) (local ((define k (time fn))) k))]))
Run Code Online (Sandbox Code Playgroud)
我有一个函数叫做fact计算数字的阶乘.
(define (fact n)
(cond
[(= 0 n) 1]
[else (* n (fact (- n 1)))]))
Run Code Online (Sandbox Code Playgroud)
如果我评估(time (fact 10000)),我得到合理的结果cpu,real和gc时间,以及大量.一切都很好.
但是,当我尝试评估时,(many 3 (fact 10000))我得到:
cpu time: 0 real time: 0 gc time: 0
cpu time: 0 real time: 0 gc time: 0
cpu time: 0 real time: 0 gc time: 0
true
Run Code Online (Sandbox Code Playgroud)
fact尽管作为参数传递,为什么函数不进行评估?
lambda scheme functional-programming operator-precedence racket
Haskell SDL绑定导出名为SDLKey的枚举类型.但是Enum实例以一种奇怪的方式声明:
instance Enum SDLKey Word32 where
fromEnum SDLK_UNKNOWN = 0
fromEnum SDLK_FIRST = 0
fromEnum SDLK_BACKSPACE = 8
...
Run Code Online (Sandbox Code Playgroud)
SDLKey不接受任何类型参数,这怎么不是语法错误?Haskell报告说SDLKey不是Enum的实例,那么Enum函数的定义类型是什么?而且,最重要的是,给定SDLKey,如何在其上调用Enum函数?
来自hackage的源代码:http://hackage.haskell.org/packages/archive/SDL/0.6.2/doc/html/src/Graphics-UI-SDL-Keysym.html#SDLKey
我在MySQL数据库中阅读标记'č','ć','đ','š','ž'时遇到问题.
我在互联网上找到了一些建议,但都没有.我正在寻找数据库和PHP文件中的charset的正确组合.到目前为止,我一直使用UTF.
我想为我们的系统添加审计跟踪,所以当发生任何添加/删除/更新操作时,我将使用以下信息记录它: -
CRUD操作类型.是添加,删除还是更新.
已修改的记录ID.
日期和时间.
现在我发现了两种方法; 要么拥有一个包含以下字段的审计跟踪表: -
或者有两个表用于CRUD操作的查找表,例如
审计审判将参考上表: -
那么哪种方法更好?
第二个问题如果我将遵循第二种方法.然后我最好在我的代码中使用CRUD_ID,例如,如果oprration是delete,我的代码可能如下: -
Inset into audit_trail (ID, CRUD_ID, Record_ID, Date) values ( 123445, 3,12771,1june2O13) //CRUID 3 represents delete operation.
Run Code Online (Sandbox Code Playgroud)
最好的祝福
我正在尝试使用NOT IN条件进行查询。如果我使用子查询,我没有问题,但是当我尝试使用UNION连接来自两个表的结果时,出现错误。
这就是我正在做的:
SELECT *
FROM users
WHERE id NOT IN(
(
SELECT DISTINCT(user_id) AS id
FROM users_table_1
)
UNION
(
SELECT DISTINCT(user_id) AS id
FROM users_table_2
)
)
Run Code Online (Sandbox Code Playgroud)
有没有办法使用子查询获得我想要的东西?
使用以下查询:
SELECT SeatPref FROM (SELECT SeatPref, COUNT(CustID) AS seat_count FROM Booking
GROUP BY SeatPref) WHERE seat_count = max(seat_count)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
每个派生表都必须有自己的别名.
我创建了一个数据组:
data Cars = vw | audi | ford
data Engine = TDI | TSI
Run Code Online (Sandbox Code Playgroud)
我想在函数/列表理解中使用它们.为了显示组合,我有这个:
[(x,y) | x <- Cars , y <- Engine]
Run Code Online (Sandbox Code Playgroud)
但我对如何使用data函数内部有点迷失.
我收到此错误:
Not in scope: data constructor `Cars'
Run Code Online (Sandbox Code Playgroud) 我有一个包含HTML内容的JSON文件.我想在用户点击按钮时将其加载到我的主HTML文件中.
ABC.json 包含:
<li><img src="images/picture6.jpg" /></li>
<li><img src="images/picture5.jpg" /></li>
<li><img src="images/picture4.jpg" /></li>
<li><img src="images/picture3.jpg" /></li>
<li><img src="images/picture2.jpg" /></li>
<li><img src="images/picture1.jpg" /></li>
Run Code Online (Sandbox Code Playgroud)
我正在使用的Javascript代码是:
$("button").click(function(){
$.getJSON("javascript/lib/domain.json", function(data){
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不起作用.