gpt4 book ai didi

scheme - 条件 (cond ...) 脚本错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:55 24 4
gpt4 key购买 nike

我正在尝试做一个 script-fu,我使用的 cond 语句在理论上是正确的,但它总是给出错误“错误:( : 1) 非法函数”。

这是代码:

(define (script-fu-prueba 
edicionInteractiva)
(let*
(
(cond
( (equal? edicionInteractiva "Interactivo") (edicionInteractiva RUN-INTERACTIVE) )
( (equal? edicionInteractiva "No interactivo") (edicionInteractiva RUN-NONINTERACTIVE) )
)
)
)
)

(script-fu-register "script-fu-prueba"
"<Image>/Filters/PRUEBA"
"Prueba"
"Author"
"Copyright"
"Date"
""

SF-OPTION "Interactive" '("Interactivo" "No interactivo")
)

有什么错误吗?

我还想在肯定和否定情况下使用多个语句进行条件语句。

感谢您的帮助。

最佳答案

对于初学者来说,显示的代码没有遵循良好的 Lisp 缩进约定。您不能在单独的行中关闭括号,它们不是像类 C 语言中的大括号!此外,let* 完全没有必要,您没有在其中声明变量。您应该使用一个好的 IDE 或带有语法着色的文本编辑器,这也可以帮助您平衡括号,否则语法错误将很难发现。

还有一个更严重的问题潜伏着。参数(似乎是一个字符串)称为 edicionInteractiva,但这也是您要调用的函数的名称 - 这不起作用,它们必须具有不同的名称。我将参数重命名为 modo。我相信你是这个意思,并注意正确的缩进和处理未知输入的正确方法:

(define (script-fu-prueba modo)
(cond ((equal? modo "Interactivo")
(edicionInteractiva RUN-INTERACTIVE))
((equal? modo "No interactivo")
(edicionInteractiva RUN-NONINTERACTIVE))
(else
; it's a good idea to add some error handling
(error "Modo de edición desconocido" modo))))

关于scheme - 条件 (cond ...) 脚本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com