2013-10-04 155 views
0

是否有任何命令將所有隨後的lisp命令都回顯到stdout?echo lisp命令到標準輸出

我正在尋找類似於bash -x的東西,但是對於一些lisp解釋器(或者一些lisp特別是GNU Common Lisp)而言。

+0

你能澄清一下嗎?當你說Lisp命令時,你的意思是你交互式地在REPL(read-eval-print-loop)輸入的東西嗎?這不是一個答案,但最後評估的表單存儲在[variable'+'](http://www.lispworks.com/documentation/HyperSpec/Body/v_pl_plp.htm)中,這可能有助於實現此功能如果它不存在。 –

+0

現在是什麼? GNU Common Lisp或CLISP?您在問題中提到了GNU Common Lisp,但是標記了CLISP(這是Common Lisp的另一個實現)的問題。 –

+0

您是否希望交互使用REPL,或者當您使用Lisp作爲腳本語言?最後一項建議在[32.6.2。使用CLISP編寫腳本](http://www.clisp.org/impnotes/quickstart.html#quickstart-unix)顯示了一種腳本編寫技術,可以打印每個輸出值。您也許可以通過某種方式修改它以查看輸入。 –

回答

1

如果您使用CLISP(ANSI Common Lisp的實現),請閱讀手冊頁。有關ANSI Common Lisp的任何實現,請參閱*load-print*LOAD的文檔。

0

Common Lisp是從猛砸一個非常不同的語言。它沒有像Bash這樣的「命令」。它有函數,宏和特殊的操作符。儘管所有Bash命令都是原子的(從當前Bash過程的角度來看),但在Lisp中,原始函數和特殊運算符只有這種情況。其他一切都是從更簡單的部分建立起來的。

因此,直接等價於Bash的xtrace/-x功能在Lisp中沒有任何意義。如果你寫了你真正想要解決的問題,而不是隻是要求一個非常具體的功能,那將會很有幫助。也許對您感興趣的功能調用trace可能有幫助?

+0

如果一個實現碰巧提供鉤子到它的REPL中,但是添加一些東西來打印當前要評估的表單將回答OP的問題。 (看一下CLISP源代碼並不像CLISP有這樣的鉤子,但有些實現可能是這樣的) –

+0

@JoshuaTaylor:Bash的'-x'選項的目的是提供一個完整的由一個腳本。 (當我交互使用shell時,我認爲它沒有什麼用處)。我試着在我的回答中指出,這樣的特性在Lisp中不會有幫助,因爲它會讓你深入到標準庫的內部。原始表單通常不會被評估(例如,由於宏擴展和編譯爲本機代碼)。因此我建議改爲追蹤感興趣的特定功能。 –

+0

因爲OP提到了bash -x,我認爲OP正在用Lisp做一些腳本。例如,見[32.6.2。在CLISP手冊中使用CLISP編寫腳本](http://www.clisp.org/impnotes/quickstart.html#quickstart-unix)。重讀這個問題雖然這個假設可能是不合理的。 –

相關問題