cost 143 ms
需要幫助了解 Haskell 中的修復類型

[英]Need help understanding Fix type in Haskell

我理解fix函數在 Haskell 中的工作原理沒有任何問題,但我就是無法理解Fix數據類型。 我相信我明白了它背后的想法,但我就是無法理解Fix數據類型定義是如何在幕后工作的。 因此, Fix的定義如下: 我在腦海中解析這個定義的方式是,作為數據類型的Fix是具有一個字段unfix的記錄,其類 ...

repmin 如何在 Haskell 的樹中放置值?

[英]How does repmin place values in the tree in Haskell?

我真的很喜歡repmin問題: 記下repmin :: Tree Int -> Tree Int ,它在一次傳遞中將樹中的所有數字替換為其最小值。 如果我在 python 中寫這樣的東西,我會通過它們的引用傳遞值(假設單元素列表而不是數字就足夠了): def repmin(tree, ...

不使用 monadic bind 使用循環寫下 mfix 的情況

[英]Cases in which we shall not use monadic bind to write mfix down using loop

我一直在嘗試使用Control.Arrow.loop寫下mfix 。 我想出了不同的定義,並想看看哪個是mfix的實際工作相似。 因此,我認為正確的解決方案如下: 可以看到, loop. Kleisli loop. Kleisli的論點適用於Applicative實例。 我發現這是一個好兆頭,因為 ...

是否可以免費寫下共享修復點?

[英]Is it possible to write down a sharing fix point-free?

編輯:這篇文章中的fix代表通常寫在 Haskell 中的定點組合,而不僅僅是Data.Function.fix 。 眾所周知, fix可能是非共享的,因為 GHC 並不總是消除常見的子表達式: 長話短說:“如果您關心 CSE,請親自動手。” 使用S -combinator 可以很容易地無點寫下 ...

將斐波那契數列計算為固定點的復雜性

[英]Complexity of computing Fibonacci sequence as a fixpoint

我已經意識到以下程序 速度驚人。 它比遞歸定義快得多: 我很難理解定點定義實際上歸結為哪種程序算法。 僅僅是因為 Haskell 的編譯器做了一些巧妙的優化,還是它本質上很快? 讓我們稍微解開固定點: Haskell 編譯器是否識別 x = y 和“短路保險絲”? 它會更多地了解列表 x,還是會從 ...

談到不動點時,“最小”和“最大”指的是什么順序?

[英]What order do “least” and “greatest” refer to when talking about fixed point?

在 Haskell 關於不動點的文本中,經常提到最小和最大不動點。 例如在Data.Functor.Fixedpoint文檔或這里。 最小和最大暗示所涉及類型的順序(或者僅在固定點上定義它就足夠了嗎?)無論如何,我從來沒有看到這個順序被明確表示。 在 Haskell 中,一個固定點大於另一個固定點 ...

clojure 中的定點組合器

[英]fix-point combinators in clojure

我最喜歡的一種測試我正在學習的語言的能力的方法是嘗試和實現各種定點組合器。 由於我正在學習 Clojure(盡管我對 lisps 並不陌生),因此我也做了同樣的事情。 首先,一些“可測試”的代碼,階乘: (def !' "un-fixed factorial function" (fn [ ...

在遞歸數據類型的每個級別附加附加信息?

[英]Attach extra information at every level of a recursive data type?

(這不是一個特別的Haskell問題。) 我有一個遞歸數據結構。 我想在每個級別附加一些額外的信息。 這是一個簡化的示例,其中我將X或Y到樹的每個級別: (對我來說, TreeF的定義是不自然的。我寧願定義data Tree a = Leaf a | Tree a (Tree ...

共享與非共享定點組合

[英]Sharing vs. non-sharing fixed-point combinator

這是Haskell中定點組合器的通常定義: 在https://wiki.haskell.org/Prime_numbers上 ,他們定義了一個不同的定點組合子: _Y是一個非共享的固定點組合器,在這里安排遞歸的“伸縮”多級素數生產(生產者塔 )。 這到底是什么意思? ...

修復的固定點:: Eq a =>(a-> a)-> a-> a

[英]a fixed point for fix :: Eq a => (a -> a) -> a -> a

大家好,我正在嘗試實現高階函數修正,該修正會從初始點x計算任意函數f :: a -> a的吸引人的不動點 。 也就是說,對於給定的f和x ,形式為fᴷ(x)的不動點。 我目前的嘗試是: 注意:如果函數未從起點收斂,則函數不會終止 。 有人能幫助我嗎 ? 我嘗試過,但沒 ...

編譯器如何計算出仿函數的固定點以及cata如何在葉級工作?

[英]How does compiler figure out fixed point of a functor and how cata work at leaf level?

我覺得理解一個仿函數的固定點的抽象概念,但是,我仍然在努力弄清楚它的確切實現及其在Haskell中的變形。 例如,如果我定義,如根據“程序員類別理論”一書 - 第359頁,下面的代數 根據catamorphism的定義,可以將以下函數應用於ListF的固定點,即List,以計算其長 ...

修復與ArrowLoop

[英]fix vs. ArrowLoop

Control.Arrow的loop描述: 循環運算符表示計算,其中輸出值作為輸入反饋,盡管計算僅發生一次。 它以箭頭符號表示rec值遞歸構造的基礎。 它的源代碼,以及(->)實例化: 這立刻讓我想起了fix點,固定點組合器: 所以我的問題是: ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM