lazy-sequences

    4熱度

    2回答

    我有一個懶惰由find創建的文件名列表。我希望能夠延遲加載這些文件的元數據。這意味着,如果我take 10元素從metadata,它應該只搜索這10個文件的元數據。事實上,find完美地給你10個文件,如果你問他們沒有掛你的磁盤,而我的腳本搜索所有文件的元數據。 main = do files <- find always always/ metadata <- loadMeta

    8熱度

    2回答

    我正在用Clojure編寫一個簡單的桌面搜索引擎,作爲了解更多關於該語言的一種方式。到目前爲止,我的程序在文本處理階段的表現非常糟糕。 在文本處理我已經到: 清理不需要的字符; 將字符串轉換爲小寫; 拆分文檔以獲取單詞列表; 構建將每個單詞與其文檔中的出現相關聯的映射。 下面是代碼: (ns txt-processing.core (:require [clojure.java.io :

    0熱度

    1回答

    我需要一個工作簿中的響應組合在一起幫助。我正在使用Excel 2010,並且我有ColumnA,分類爲1,2,3,4,5和6. ColumnB從下拉列表(A,B,C和D)中獲得響應A,B,C和D都在電子表格中其他位置的單元格中定義,然後引用數據驗證下拉列表)。假設答案是1-A,2-A,3-B,4-D,5-A,6-B。我想要一個不同的細胞中的公式,它會給我「1,2和5是A; 3和6是B; 4是D」可

    20熱度

    3回答

    我怎麼能創造什麼其他語言調用一個懶惰序列或「發電機」的功能? 在Python,我可以使用yield如在下面的例子中(從Python的文檔)以懶惰地生成的序列,所以可迭代中不使用中介列表的存儲器中的方式: # a generator that yields items instead of returning a list def firstn(n): num = 0 whil

    3熱度

    1回答

    未實現懶-seq的一步,我有一個懶序列,其中每個項目需要一定的時間來計算: (defn gen-lazy-seq [size] (for [i (range size)] (do (Thread/sleep 1000) (rand-int 10)))) 是否有可能評估一步此序列步驟並打印結果。當我試着使用for或doseq Clojure的處理總是實

    5熱度

    1回答

    給定一個輸入流,我希望以字節數組(塊)的形式創建一個惰性的數據序列。這裏是我的嘗試: (defn- read-or-nil [stream] (let [buf (byte-array 2)] (when-not (= -1 (.read stream buf)) buf))) (defn byte-chunk-seq [stream] (cons (

    2熱度

    1回答

    我嘗試使用Node.js的 DIR /文件結構來實現鏈表結構正在讀取文件系統目錄樹: DIR1 DIR2R file1 file2 file3 … - >列表結構: ("DIR1" ("DIR2" "file1" "file2" "file3" …)) DIR() //looks like a C function file //look

    1熱度

    2回答

    所以我有一個類在Smalltalk中創建LazyMatrix。該類只有1個實例變量,不能是除Object之外的任何其他類的子類。 LazyMatrix的實例變量被稱爲block,並且必須是back。我初始化LazyMatrix這樣的: initialize block:=[nil] 將會有一個方法,用於設置值 setRow:column:value: 此方法將通過設置新的塊爲[#(IJ值

    2熱度

    1回答

    我正在玩懶惰列表,似乎無法弄清楚這一點。 我認爲我可以通過將它作爲一個大的遞歸函數來解決我的問題,這個函數可以完成所有必要的工作,但是我想編寫一個簡單的函數。 我會嘗試寫一個簡單的例子,應該翻譯成我的問題很容易: (defn numbers ([] (numbers 1)) ([n] (cons n (lazy-seq (numbers (inc n)))))) (defn

    4熱度

    1回答

    我想實現SICP部分懶惰流3.5.1 首先,我定義這兩個函數 (defmacro delay (form) `(lambda() ,form)) (defun force (form) (when form (funcall form))) 當我們稱之爲: (force (delay '(+ 1 2))) ;;=> (+ 1 2) (force (del