cost 196 ms
多態 function 為 phantom GADT 類型

[英]Polymorphic function for phantom GADT type

我是 OCaml 的新手。 我正在編寫一個簡單的匯編程序編譯器。 我在我的 AST 中使用了以下類型。 我認為類型很好,因為它們禁止對不同的(按位)寄存器進行操作。 但現在我有一個問題。 我不知道如何像下面這樣寫 function 我只是不知道如何獲得一個 function,它接受一個字符串(或未明 ...

未強制執行的方法的類型限制

[英]Type bounds on methods not enforced

我無法理解為什么編譯器允許當前代碼。 我使用幻像類型來保護對方法的訪問。 只有在特定的“狀態”下才允許調用方法。 在大多數情況下,這個不變量確實是經過編譯驗證的。 然而,有時編譯器只是忽略了幻像類型所施加的約束。 這感覺像是一個重大錯誤。 我不明白什么? 我試圖盡可能地簡化問題。 我的用例更復雜:c ...

使用特征作為幻像類型

[英]Using a trait as phantom type

在 Rust 中,我想使用幻像類型來正確鍵入一個簡單的 id:struct Id<T> { val: u32, _type: PhantomData<T>, } 在初稿版本中,我使用具體結構作為T ,一切都很好。 然后在使用不同數據源的更精細的版本中,這些結 ...

Haskell 的“Const”函子是否類似於范疇論中的常數函子?

[英]Is Haskell's `Const` Functor analogous to the constant functor from category theory?

我知道 Haskell 中的許多名稱都受到范疇論術語的啟發,我試圖准確理解類比的開始和結束位置。 類別Hask 由於有關嚴格/懶惰和seq的一些技術細節,我已經知道Hask不是(必然)一個類別,但現在讓我們把它放在一邊。 為了清楚起見, Hask的對象是具體類型,即 kind *的類型。 這包括 ...

消除列表中的幻像類型

[英]Eliminating phantom types in a list

我在弄清楚如何在列表中的 ST monad 中運行計算時遇到了一些麻煩。 但是嘗試編譯它會出現以下錯誤: 如果我在 IO monad 中運行它,這將是一個簡單的替換pure. map runST pure. map runST與traverse runIO (或其他),但我還沒有弄清楚如何解決幻像 ...

PhantomData 在 Rust 中究竟是如何工作的?

[英]How exactly does PhantomData work in Rust?

我發現PhantomData中 PhantomData 的概念相當混亂。 我在基於 FFI 的代碼中廣泛使用它來限制 object 的生命周期,但我仍然不確定我是否正確執行。 這是我經常最終使用它的人為示例。 例如,我不希望MyStruct的實例比Context的實例壽命長:// FFI decl ...

現代 GHC 版本是否有任何證明擦除功能?

[英]Do modern GHC versions have any kind of proof erasure?

假設我有一個參數只為類型系統的利益而存在,例如在這個小程序中: {-# LANGUAGE GADTs #-} module Main where import Data.Proxy import Data.List data MyPoly where MyConstr :: Proxy a - ...

ST樣封裝

[英]ST-like encapsulation

我正在嘗試使用類型系統來確保 X 永遠不會從 monad M 中取出。我希望它的工作方式類似於runST ,其中不可能混合來自不同線程的環境。 但是,以下代碼不會導致類型錯誤: 為什么 ST monad 中的類似代碼會拋出錯誤而我的不會? 據我了解的s在M sa應該成為約束,使得s在X s游 ...

無形。 修改標記類型

[英]Shapeless. Modify tagged type

例如,我有兩種標記類型: 該類型用於處理模型。 第一個用於通用模型,第二個用於db實體。 我的資料中有一個轉換器: 此轉換無法編譯,導致e.created.toLocalDateTime返回LocalDateTime ,但Entity需要由Created標記的LocalDateTime ...

生銹中的PhantomData類型用法

[英]PhantomData type usage in rust

我正在瀏覽一些生銹的源代碼,我找到了一個名為PhantomData的數據類型。 我正在瀏覽生銹文檔,並在互聯網上搜索了很多。 但是,我無法理解這種數據類型的實際使用情況。 如果可能的話,有人可以用簡單的方式向我解釋一下嗎? ...

具有新數據的類型的限制集,如“樹 a”

[英]The limit set of types with new data like `Tree a`

在 Haskell 中探索和研究類型系統我發現了一些問題。 1)讓我們將多態類型視為二叉樹: 並且,例如,我只想將我的考慮限制為Tree Int 、 Tree Bool和Tree Char 。 當然,我可以做一個這樣的新類型: 但是是否有可能以更優雅的方式(並且沒有像T1 、 T2 、 ...

在類型聲明中鍵入限制

[英]Type restriction in type declaration

有一個着名的類型級自然數的例子: 當我們應用類型構造函數Succ時,我有一個關於理想限制的問題。 例如,如果我們想在函數定義中進行這樣的限制,我們可以使用類和上下文,就像在這段代碼中一樣: 使用toInt (undefined :: Succ Int)是不可能的,沒關系。 ...

Arithmoi和幻像類型

[英]Arithmoi and phantom types

我想了解arithmoi軟件包( https://hackage.haskell.org/package/arithmoi-0.8.0.0 )中幻像類型的使用。 這有助於檢查我是否正在使用正確的殘渣類別( Z/nZ )。 有問題的幻像類型是data Mod (n :: Nat) = Mo ...

模式匹配幻像類型

[英]Pattern match phantom type

我正在嘗試實現一個CurrencyQty類型,它類似於在編譯時標記的數字: 現在我想實現一個動態查找匯率的通用轉換函數。 假設我有一些功能 我想寫 或者不知何故 我正在使用的語法顯然是無效的haskell ...有沒有辦法實現這一目標? ...

如何在線程中共享包含幻像指針的結構?

[英]How do I share a struct containing a phantom pointer among threads?

我有一個結構,需要在一個類型上是通用的,但該類型實際上並不包含在結構中:它用於此結構的方法,而不是結構本身。 因此,該結構包括一個PhantomData成員: 幻像成員被定義為指針,因為該結構實際​​上不擁有類型T的數據。 這是std::marker::PhantomData文檔中的 ...

將JSON數組反序列化為元組並為其指定類型標記

[英]Deserialize JSON array into tuple and give it type tags

我有JSON看起來像: 數組中的對象當然具有除range的字段,但無關緊要。 是否可以將它們反序列化為具有兩種幻像類型的元組,以指示開始和結束是自動包含還是獨占? 這也可以通過將數字反序列化為某種具有幻像類型的元組來解決。 這不起作用,因為serde_json似乎對P ...


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