小编Cin*_*ima的帖子

Lisp - Flag(bandera) 不起作用

我正在尝试编写一个函数来确定一个单词是否是回文。我做了这个,但它总是返回“不是回文”。我不知道发生了什么。

(defun palindromo (X)
    (setq i 0)
    (setq j (- (length X) 1))
    (setq bandera 0)
    (loop while (< j i)
        do
        (when (char= (char X i) (char X j))
            (+ i 1)
            (- j 1)
            (setq bandera 1))
        (unless (char/= (char X i) (char X j))
            (setq bandera 0)

        )
    )
    (cond
    ((equal 0 bandera) (write "Is not a palindrome"))
    ((equal 1 bandera) (write "Is a palindrome"))
    )   
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

loops clisp common-lisp palindrome conditional-statements

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