写作后阅读*标准输入*Common Lisp



这是一个非常简单的问题。我正在尝试解决HackerRank问题,但不完全理解如何写入*标准输入*以便在我的计算机上运行代码。

它要求在给定数组长度 (N) 的情况下对数组求和,然后是数组本身,全部在 *标准输入* 上。

黑客行列使用*标准输入*来给出值,如果我可以将值存储在输入中然后读取它们,那将是最简单的。

我的问题是我如何写入*标准输入*?这将使在我的计算机上工作比在云中工作更容易。

使用 with-input-from-string .

(with-input-from-string (s "4 3 2")
  (let ((a (read s))
        (b (read s))
        (c (read s)))
    (format t "~a, ~a, ~a~%" a b c))) 

您也可以只从文件中读取,但从字符串中读取对于创建不同的测试用例要容易得多。

Pure Common Lisp 不提供流,您可以在其中轻松写入、缓冲输出并读回它。Pure Common Lisp 也不提供可扩展的流。但是有一个名为灰色流的扩展(由David N. Gray提出,作为ANSI CL问题STREAM-DEFINITION-BY-USER),它允许使用FIFO缓冲区实现管道流。

管道

示例:cl-管道

相关内容

  • 没有找到相关文章

最新更新