gpt4 book ai didi

lisp - 在 Common Lisp 中为字符串交替大写/小写

转载 作者:行者123 更新时间:2023-12-04 11:51:07 26 4
gpt4 key购买 nike

我想编写一个函数,该函数将返回一个在 Common Lisp 中使用替代大写/小写格式化的字符串。例如,输入“stackoverflow”应返回字符串“StAcKoVeRfLoW”。这是我的尝试,但它只返回一个缺点对列表。我在正确的轨道上吗?

(defun mockify (chars)
(let ((lst (coerce chars 'list)))
(if (equal lst nil) nil
(coerce (cons
(cons (char-upcase (car lst)) (char-downcase (cadr lst)))
(mockify (cddr lst)))
'string))))

CL-USER> (mockify "meow")
((#\M . #\e) (#\O . #\w))

最佳答案

使用 MAP :我们正在创建一个新字符串,基于交替的 bool 变量移动原始字符串和大写/小写。

CL-USER 353 > (let ((string "stackoverflow")
(upcase t))
(map (type-of string)
(lambda (element)
(prog1 (if upcase
(char-upcase element)
(char-downcase element))
(setf upcase (not upcase))))
string))
"StAcKoVeRfLoW"

关于lisp - 在 Common Lisp 中为字符串交替大写/小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68036136/

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