我對Lisp相當陌生,而且遇到了打印問題。我有一個功能可以打印到標準輸出(等等)。然後我想通過另一個函數運行這個函數,它仍然運行相同,但是沒有任何東西被打印到標準輸出。在Lisp中抑制打印函數的輸出
這裏是我的意思的簡單例子。我所描述的以下兩個功能:
(defun does-printing()
(print "This goes to standard output."))
(defun run-other-function (function)
(funcall function)
(values))
這裏的時候我跑這會發生什麼運球,
;; Dribble of #<IO TERMINAL-STREAM> started on 2014-10-05 21:49:49.
#<OUTPUT BUFFERED FILE-STREAM CHARACTER #P"example.out">
[7]> (run-other-function #'does-printing)
"This goes to standard output."
[8]> (dribble)
;; Dribble of #<IO TERMINAL-STREAM> finished on 2014-10-05 21:50:09.
注意,打印功能仍然打印到標準輸出。它希望能夠通過run-other-function在運行do-printing時以某種方式抑制此打印。我在尋找解決方案時嘗試了許多不同的問題措辭,但沒有得到我想要做的事情。
如何將可選參數「打印輸出」添加到打印? – 2014-10-06 05:40:07
我確實喜歡這種解決方案的某些情況,但它不適合我的需求。我一直在爲myseltfjust編寫一個基本的單元測試結構,以便使用該語言進行一些練習,所以我不必擔心爲每個潛在打印添加可選參數。 – Nyles 2014-10-06 06:44:26