"twenty-seven" lisp 是否提供相反的指令(或某些库函数),-6ren">
gpt4 book ai didi

format - 通用 Lisp : Cardinal English Number to Integer

转载 作者:行者123 更新时间:2023-12-01 03:44:41 25 4
gpt4 key购买 nike

Common Lisp 提供了可爱的 ~r 指令来打印基数英文数字。例如:

(format nil "~r" 27) -> "twenty-seven"

lisp 是否提供相反的指令(或某些库函数),从基数英文数字到整数值?我在 Windows 机器上使用 Allegro CL。

编辑:我正在以更简洁的方式寻找这种类型的功能:
(defconstant +cardinal-number-map+
(loop for number from 0 to 100
collect (cons (format nil "~r" number) number)))

(defun cardinal->int (cardinal)
(cdr (assoc cardinal +cardinal-number-map+ :test #'string-equal)))

最佳答案

Does lisp provide a directive (or some library function) that does the reverse, from cardinal English numbers to integer values?



最简洁的答案是不”。您可以阅读不同的基数,但不能阅读英文文本。也就是说,进行这种类型的阅读是一项足够常见的练习,您可以在那里找到可以做到这一点的代码。例如,在 Code Golf 网站上,有一个问题, Convert English to a number .我在那里没有看到任何 Lisp 解决方案,但有一些简短的答案可以轻松翻译。 ( Javascript answer 很短,可能是一个不错的选择。)

然而,因为 格式的输出没有精确指定,不会有一个简单且可移植的解决方案适用于每个实现的 格式输出。为此,您可能必须执行类似于您在问题中建议的操作。

关于format - 通用 Lisp : Cardinal English Number to Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28027161/

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