2015-05-08 57 views
3

我工作的一些現有Python代碼轉換爲CLISP只是作爲一個練習...需要幫忙CLISP讀取標準輸入到一個列表

程序讀取號的列表,並創建平均值,最小值,最大值和標準偏差。我有基於文件的功能工作:

(defun get-file (filename) 
    (with-open-file (stream filename) 
    (loop for line = (read-line stream nil) 
     while line 
     collect (parse-float line)))) 

這工作時,我把它作爲

(get-file "/tmp/my.filename") 

...但我希望程序讀取標準輸入,我已經試過各種 東西沒有運氣。

有什麼建議嗎?

回答

6

只是單獨的關注點:

(defun get-stream (stream) 
    (loop for line = (read-line stream nil) 
     while line 
     collect (parse-float line))) 

(defun get-file (filename) 
    (with-open-file (stream filename) 
    (get-stream stream))) 

然後你可以使用get-file像你已經做的,(get-stream *standard-input*)

2

變量*standard-input*勢必標準輸入:

(defun get-from-standard-input() 
    (loop for line = (read-line *standard-input* nil) 
     while line 
     collect (parse-float line)))