Lisp 如何将行读取为简单的基字符串?
那么,下面的代码Lisp 如何将行读取为简单的基字符串?,lisp,common-lisp,sbcl,Lisp,Common Lisp,Sbcl,那么,下面的代码 (取消读取8位行(路径) (打开文件时(流路径:元素类型'base char:外部格式:ascii) (环路 对于行=(读取行流nil) 边线 收集线) 以字符串列表的形式读入文件,字符串类型为SIMPLE-ARRAY-CHARACTER。我想要的是SIMPLE-BASE-STRING。我可以通过强制执行: (取消读取8位行(路径) (打开文件时(流路径:元素类型'base char:外部格式:ascii) (环路 对于行=(读取行流nil) 边线 收集(强制行“简单基字符串
(取消读取8位行(路径)
(打开文件时(流路径:元素类型'base char:外部格式:ascii)
(环路
对于行=(读取行流nil)
边线
收集线)
以字符串列表的形式读入文件,字符串类型为SIMPLE-ARRAY-CHARACTER
。我想要的是SIMPLE-BASE-STRING
。我可以通过强制执行:
(取消读取8位行(路径)
(打开文件时(流路径:元素类型'base char:外部格式:ascii)
(环路
对于行=(读取行流nil)
边线
收集(强制行“简单基字符串”))
有没有一种方法不必诉诸于强制
?我正在运行sbcl 2.0.5。可移植,不需要。实现可以自由返回他们认为合理的任何类型的字符串
我会使用一个简单的包装器函数,也许会内联使用:
(declaim (inline read-simple-line))
(defun read-simple-line (stream)
(some-> (read-line stream nil)
(coerce 'simple-base-string)))
(Some->
来自arrows
)。不可移植。实现可以自由返回他们认为合理的任何类型的字符串
我会使用一个简单的包装器函数,也许会内联使用:
(declaim (inline read-simple-line))
(defun read-simple-line (stream)
(some-> (read-line stream nil)
(coerce 'simple-base-string)))
(Some->
来自箭头)很高兴知道,谢谢。您知道是否有专门针对SBCL的非便携方式吗?(乍一看似乎不是这样,我又浏览了一些文档,什么也找不到。)@Andrei:我也没有。我甚至猜不出它在使用时会是什么样子。打开
或读取行
的一些特殊参数?很高兴知道,谢谢。您知道是否有专门针对SBCL的非便携方式吗?(乍一看似乎不是这样,我又浏览了一些文档,什么也找不到。)@Andrei:我也没有。我甚至猜不出它在使用时会是什么样子。要打开或读取行
的一些特殊参数?