仅输出一个空白行

时间:2018-09-05 00:33:50

标签: common-lisp

fresh-line仅在我们还未在行首的情况下才输出换行符,换句话说,转到下一行但从不产生空行,换句话说,最多输出一个连续的换行符。

我需要一个仅在我们还没有输出空行的情况下才输出空行的函数,换句话说,最多输出两个连续的换行符。

或者换句话说,我正在寻找一个幂等空行函数,即使被调用多次,该函数也将精确输出一条空行。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,我认为您可以使用fresh-line的以下属性(请参见manual):

  

fresh-line如果输出换行符,则返回true;否则,返回true。否则返回false。

定义如下内容:

(defun my-fresh-line ()
  (unless (fresh-line)
    (terpri)))

另一方面,如果您要在当前书面文本后总是空白行,无论是否以新行结尾,您都可以定义以下内容:

(define blank-line ()
  (fresh-line)
  (terpri))

,然后在当前输出之后调用它。