哪位能试一下
CL-USER> (format t "a:~10t~a" :artist "Dixie Chicks")
ARTIST: DixieChicks
NIL
我的环境里是这样的
Break 15 [28]> (format t "~:a~10t~a" :artist "Dixie Chicks")
ARTIST Dixie Chicks
NIL
哪位能试一下
CL-USER> (format t "a:~10t~a" :artist "Dixie Chicks")
ARTIST: DixieChicks
NIL
我的环境里是这样的
Break 15 [28]> (format t "~:a~10t~a" :artist "Dixie Chicks")
ARTIST Dixie Chicks
NIL
CL-USER> (format t "~a:~10t~a" :artist "Dixie Chicks")
ARTIST: Dixie Chicks
NIL
原版是这样的。你为什么两个都不一样,这就有趣了。我看你复制代码还是直接对照原版的吧。
学语言和format string较什么真啊 。用到查一下就好了
你说的不是重点,我们是在讨论 mac 上的 clisp和书上的 common lisp不兼容的问题
不可能有不兼容。你看的翻译版代码都抄错了才是问题的来源。
format是受ANSI Common Lisp标准限定的,如果你实现有问题说明你用了山寨实现
关键是 我是 拷贝的,改后才能和书上一样的结果,算了,不争了,多谢各位
因为书里代码和结果都是从原版抄的,结果书里代码抄错了,结果自然不一样,有什么逻辑问题么。
哦,我懂了,你是从 PDF 上复制的文字,有些制作得不规范的或者是OCR 的 PDF 实际复制出来的文字是不一样的,所以你的回答里书上是
你在 repl 里打的是
我下了作者的源码也是跟书上的一样的,所以才提出版本的问题
我用的是这个版本:
Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>
Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010
Type :h and hit Enter for context help.
是译者不是作者。
原版在这里 Practical: A Simple Database
代码是
“~a:~10t~a”
你说书上的是 “a:~10t~a”
,明显不一样好吗。
说明要么你搞错了,要么就是源码有问题
好歹我也是写过几行代码的人,不会这个也不知道,我说的却是事实,验证一下在讨论吧
这一点说的对,还有冒号的位置问题 是在a前面还是后面 我的是在前面
Break 15 [28]> (format t "~:a~10t~a" :artist "Dixie Chicks")
ARTIST Dixie Chicks
NIL
Break 15 [28]> (format t "~a:~10t~a" :artist "Dixie Chicks")
ARTIST: Dixie Chicks
NIL
所以是你看的翻译版打错了代码。一切代码请以原版为准。只不过刚好打错的版本也是合法代码,能运行结果不同而已。
自己测一下,谢谢,
他用的代码就是错的,原版冒号在 a 后面。你也没发现你用的两个代码冒号顺序不一样?
是“已绝版多年”,不是“以绝版多年”。
format不用花太多时间啦. 伞哥放出来这个是他翻译稿转的pdf,不知道有没有校对过,有错的话可以对照下原版,有空也可以微博@一下他.
format里面 ~a相当于占个位置,~a:就是一个占位符一个: ,后面的:是冒号本身,无特殊意义,可以打印出来. 但是~:a是特殊符号,这里的:是个修饰符,比如打数字:
(format t “~d” 100000) ;;=> 100000
(format t “~:d” 100000) ;;=>100,000 多一个逗号
format用法超级多,大小写什么的不在话下,甚至可以把数字打印成英语:
(format t “~:r” 1) ;;=> first
(format t “~r” 1) ;;=>one
另外还有一个修饰符~@,具体可以自己试一下. 不过format比较细节,后面翻翻文档就好.
这本书我觉得比较好的是,后面的例子比较实用,可以快速看看语法然后往后翻.
忘记@了哈哈哈哈,↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑