![](/img/trans.png)
[英]Detecting cheapest way to build independent iterators
假設我正在編寫一個 function 接受一個可迭代對象,而我的 function 想要不知道該可迭代對象是否實際上是一個迭代器。 (這是一種常見的情況,對吧?我想基本上所有的 itertools 函數都是這樣寫的。接受一個可迭代對象,返回一個迭代器。) 例如,如果我在 object 上調用ite ...
[英]Detecting cheapest way to build independent iterators
假設我正在編寫一個 function 接受一個可迭代對象,而我的 function 想要不知道該可迭代對象是否實際上是一個迭代器。 (這是一種常見的情況,對吧?我想基本上所有的 itertools 函數都是這樣寫的。接受一個可迭代對象,返回一個迭代器。) 例如,如果我在 object 上調用ite ...
[英]Is the only difference between Inductive and CoInductive the well-formedness checks on their uses (in Coq)?
換種說法:如果我們要分別刪除使用歸納和歸納數據類型的終止檢查和保護條件,那么歸納/歸納和修復/cofix之間是否會不再存在根本區別? 我所說的“根本差異”是指 Coq 核心演算的差異——而不是語法和證明搜索等方面的差異。 這似乎最終歸結為一個關於構造微積分的問題。 注意:我知道一個跳過終止檢查/遞 ...
[英]What constitutes codata in the context of programming?
這是一個核心遞歸算法,因為每次迭代它都會調用比之前更大的數據: 它類似於尾遞歸累加器樣式,但它的累加器是隱式的,而不是作為參數傳遞。 如果不是因為懶惰,它將是無限的。 那么 codata 只是 WHNF 中的值構造函數的結果,有點像(a, thunk)嗎? 或者 codata 是范疇論中的一個數學 ...
[英]How to encode corecursion/codata in a strictly evaluated setting?
Corecursion 意味着在每次迭代時調用自己的數據,這些數據大於或等於之前的數據。 Corecursion 適用於 codata,它們是遞歸定義的值。 不幸的是,值遞歸在嚴格評估的語言中是不可能的。 不過,我們可以使用顯式 thunk: const Defer = thun ...
[英]CoNat : proving that 0 is neutral to the left
我正在試驗 Jesper Cockx 和 Andreas Abel 的這篇論文中對CoNat的定義: 我定義zero plus : 我定義了雙相似性: 但我堅持證明plus zero n與n相似。 我的猜測是,在證明中,我應該(至少)有一個iszero n的 with 子句: 但是 Agda 抱怨以 ...
[英]Agda: Simplifying recursive definitions involving Thunk
我正在嘗試實現一個表示(可能)無限二進制樹上的無限路徑的類型。 該定義當前類似於stdlib中Conat的定義。 現在,我想定義一個具有更長重復部分的值,例如LRRL。 我現在能寫的最好的是以下內容(很快就會變得乏味)。 目標 定義branchL'和branchR'以便 ...
[英]Why there is no filter function of Stream in idris?
有filter : (a -> Bool) -> List a -> List a列表,但沒有filter : (a -> Bool) -> Stream a -> Stream a流,為什么? 是否有一些替代方案可以完成類似的工作? ...
[英]Is there any idea to solve the floating-number-precision-prob in the future?
我們無法以無限精度存儲小數,但是可能存在某種方式來表示它們,就像我們在haskell中表示無限列表一樣。 我想到的第一個想法是通過類似於Codata的方式表示一個十進制數,因此對於任何給定的自然數k,我們都可以計算出精確到k位數字的十進制數。 但是有一個明顯的問題,考慮數字a = 0 ...
[英]What is the difference between codata and data?
有一些解釋在這里。 直覺上,我理解有限數據結構與無限數據結構(如流)有何不同。 盡管如此,看到對差異、特征、輔助數據類型的其他解釋還是很有趣的。 在閱讀有關流的內容時,我偶然發現了 codata 術語。 ...
[英]Terminology for example of codata in Clojure
想象一下以下函數在Clojure中給出一個無限懶惰的fibonacci序列: 假設 我們將codata的簡潔定義視為“Codata是可能無限的價值所居住的類型”。 這個Clojure示例不使用靜態類型系統(來自core.typed),所以對codata的任何描述都是'工 ...
[英]Pithy summary for codata (Where a comonad is a 'type for input impurity')
用精巧的摘要來說- 對Comonads的描述似乎很成功-將它們描述為“輸入雜質的類型”。 Codata的等效精簡(單句)描述是什么? ...