小编ait*_*zos的帖子

在cygwin中刷新windows用户的环境变量

我想在执行setx VARNAME VARVALUE(特别是路径)后刷新cygwins环境.

'export VARNAME = VARVALLUE'不是一个选项,因为我需要转换导出的值,如果它是一个路径(类似于UNIX的格式),但VARNAME可以是一个路径.

我想运行setx然后刷新环境,因此如果VARNAME是PATH,cygwin会执行相应的转换.

cygwin window path environment-variables

7
推荐指数
1
解决办法
5295
查看次数

使用实习生时如何在结构的访问器上执行setf

我想setf根据某个变量来选择结构的不同字段。我决定使用以下方法:

生成一个带有字段访问者名称的字符串:

(setq my-string (format nil "STRUCT-ESTADISTICAS-NUM-~S" x))
Run Code Online (Sandbox Code Playgroud)

然后将intern与funcall一起使用:

(funcall (intern my-string) *estadisticas*)
Run Code Online (Sandbox Code Playgroud)

该调用返回结构字段的正确值,但是如果我尝试setf修改此值,它会抱怨说:

(setf (funcall(intern my-string) *estadisticas*) 0)
Error: `(SETF FUNCALL)' is not fbound
Run Code Online (Sandbox Code Playgroud)

我可以理解为什么它不起作用,但是我找不到修改结构域的方法。任何的想法?谢谢。

lisp common-lisp allegro-cl

5
推荐指数
2
解决办法
1329
查看次数

为什么plant1保持NIL?

请问,有人可以解释为什么"make-array"对plant1没有影响吗?

(LET(plant1)((setq plant1(make-array'(4 4)))(print plant1)(setf(AREF PLANT1 0 0)1)))

NIL错误:尝试在非数组的NIL上执行数组操作.[条件类型:TYPE-ERROR]

lisp

1
推荐指数
1
解决办法
100
查看次数