我想在执行setx VARNAME VARVALUE(特别是路径)后刷新cygwins环境.
'export VARNAME = VARVALLUE'不是一个选项,因为我需要转换导出的值,如果它是一个路径(类似于UNIX的格式),但VARNAME可以是一个路径.
我想运行setx然后刷新环境,因此如果VARNAME是PATH,cygwin会执行相应的转换.
我想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)
我可以理解为什么它不起作用,但是我找不到修改结构域的方法。任何的想法?谢谢。
请问,有人可以解释为什么"make-array"对plant1没有影响吗?
(LET(plant1)((setq plant1(make-array'(4 4)))(print plant1)(setf(AREF PLANT1 0 0)1)))
NIL错误:尝试在非数组的NIL上执行数组操作.[条件类型:TYPE-ERROR]