[英]How to annotate attrs field with validator?
我在注釋 attrs class 屬性時遇到問題。 我正在使用 NewType 來定義新的 UserId 類型和屬性凍結類。 這是 mypy 沒有抱怨的代碼,一切正常: mypy 檢查此代碼時沒有任何問題。 使用來自 attrs 的驗證器后出現問題。 mypy 現在抱怨不正確的類型: pro ...
[英]How to annotate attrs field with validator?
我在注釋 attrs class 屬性時遇到問題。 我正在使用 NewType 來定義新的 UserId 類型和屬性凍結類。 這是 mypy 沒有抱怨的代碼,一切正常: mypy 檢查此代碼時沒有任何問題。 使用來自 attrs 的驗證器后出現問題。 mypy 現在抱怨不正確的類型: pro ...
[英]Arrays and newtype pattern
我有一個類型,可以表示為 f32,沒有 NaN 或無窮大或負值,並且有最大值,一個簡單的例子可以是人的身高(以米為單位),所以我使用新的類型模式來表示它:struct Height(f32); impl TryFrom<f32> for Height { type Error ...
[英]Understanding 'newtype' keyword
對於 uni 作業,我們得到了一行 Haskell 代碼,其中顯示: 首先, TypeError是我們需要為分配實現的東西,所以我不能在這里發布數據聲明,但我的問題是這樣的。 我如何閱讀上面的代碼? newtype TC后面的a是什么? 我也不明白等號右邊是如何重用TC的。 我認為a here 是 ...
[英]datatype already declared - newtype in haskell
我正在努力理解newtype聲明。 我正在嘗試 LYAH 中的練習: http://learnyouahaskell.com/functors-applicative-functors-and-monoids#the-newtype-keyword 並想使用newtype為自定義類型實例化Tofu ...
[英]Why does refactoring data to newtype speed up my haskell program?
我有一個程序,它遍歷一個表達式樹,它對概率分布進行代數,采樣或計算結果分布。 我有兩種計算分布的實現:一種( computeDistribution )可以很好地與 monad 轉換器重用,另一種( simpleDistribution )我手動將所有內容具體化。 我不想手動具體化所有內容,因為那 ...
[英]How can I check the type of a NewType value?
如何在不強制轉換和混淆類型檢查的情況下根據其基本類型str檢查NewType的值? 我聲明了一個新類型: BoardId = NewType("BoardId", str) 我將其用作方法參數,既可以作為單個值,也可以作為除str之外的Iteration 。 我使用instanceof檢查類 ...
[英]How to Define custom types & verify correct value at compile time?
我想在 rust 中定義新類型。 比如說日期,它應該遵循 dd/mm/yy 格式,並且提供的值應該只在編譯時進行驗證。 在 gen 中,我想定義新類型並為可能的值添加限制。就像 i32 和其他原始類型有在編譯時檢查的限制。 ...
[英]How to define Macro for a new Type?
背景所以,我正在玩弄一個名為“NewType”的概念,我從 F# 和 Scala 等語言中獲得靈感。 我的目標,主要是出於學習目的,是構建一個宏,使創建這種抽象只需要一行代碼。 預期用途我想創建一個允許我做這樣的事情的宏: 現在,這是我創建User的方法: 如何實現這個接口? 該界面可能會讓您想起 ...
[英]Is there a way to have Elixir Records without default values?
背景我正試圖在 Elixir 中找到一種廉價而簡單的方法來創建新類型,而Records似乎正是我所需要的。 問題但是,Elixir 條記錄需要一個來定義默認值。 不僅如此,它還允許創建空記錄(然后用所述默認值填充)。 對於我的特定用例,這是一個問題。 我不僅沒有任何可以用作默認值的東西,而且我也不 ...
[英]Haskell's newtypes in Scala
在 Haskell 中,我們可以聲明新類型以減少動態 memory 分配並創建類型安全的 API。 newtype 僅適用於具有單個構造函數和單個參數的數據類型。 Scala 中是否有類似於 newtype 的東西? 例子: 對於用戶名,我們可以在 Scala 中編寫類似這樣的內容: ...
[英]In python3.9 type module NewType function allows creating derived with new data type
使用 python 的打字模塊,我正在使用 NewType 創建不同的類型。 UserId = NewType('UserId',int) As per documentation https://docs.python.org/3/library/typing.html if I use ne ...
[英]Avoid double quotes when deriving Show on newtype
我想Show newtype打印新類型的內部值,這樣我就不必每次需要打印時都打開Value val 。{-# LANGUAGE OverloadedStrings #-} import Data.Text newtype Value = Value Text instance ...
[英]Unboxed vector of newtype hangs in basicUnsafeNew
我正在嘗試在空間中存儲一個簡單的三維點向量。 為此,我新建了一個自定義Point並Data.Vector.Unboxed.Vector newtype Data.Vector.Unboxed.Mutable實例。 但是,由於某種原因,任何使用此類向量的嘗試都會在basicUnsafeNew中陷入無限 ...
[英]How can I create newtypes for an unsized type and its owned counterpart (like `str` and `String`) in safe Rust?
我想創建一對新類型Tag(str)和TagBuf(String) ,類似於Path和PathBuf如何包裝OsStr和OsString 。 我的最終目標是擁有一個由TagBuf鍵控的地圖,並且能夠僅使用Tag對其進行索引: fn main() { let mut m: HashMap< ...
[英]Creating a Generic Struct Indexed by a Generic NewType
我想創建一個使用通用 newtype 進行索引的通用結構。 理想情況下,它看起來像這樣: 泛型usize保證是usize ,像這樣: 這將編譯並正確強制執行類型檢查。 但是請注意get()函數是不正確的。 你如何告訴編譯器I是一個 usize 以便get()函數是正確的? ...
[英]What is the effect of mapping with a newtype constructor
在使用類型思考的第 8 章中,我了解到fmap Sum部分 fastSum :: [Int] -> Int fastSum = getSum . mconcat . fmap Sum 有一個O(n)運行時成本,而使用coerce來避免這種開銷。 我知道newtype沒有表示開銷,但我不明 ...
[英]runtime error: No instance for (Stacked Int) arising from a use of ‘/+/’
我寫了一個簡單的類型: Stack和一個 class 類型Stacked與兩個操作“加號”和“減號”的實例。 它已編譯但運行時會產生標題上的錯誤。 代碼是: 我曾嘗試在實例中使用 (Stacked a) =>...,但沒有結果。 我做錯了什么? PS。 我知道我必須檢查 [] 但在這種情況下 ...
[英]Haskell Monoid Instance Question for a newtype
我正在嘗試定義一個實例: 目標是如果列表中的所有函數都為真,則 function foldMap Join 應該返回 True,如果所有函數都不為真,則返回 false。 我了解 foldMap,以及 Monoid 的 Sum 和 Product 的實例,但是對於編寫 Monoid 的新類型實例來 ...
[英]Patternmatching on 'Or' of 2 newtypes in haskell
我在 haskell 程序中使用決策圖庫。 為此,我想聲明 2 種不同的(新)類型來跟蹤我正在處理的決策圖類型。 我使用的庫是 cudd,決策圖基本類型是 DdNode,但我的問題僅與 haskell 相關。 通常我想在調用函數時區分它們,但現在我想使用不必區分這兩種類型的 function。 我主 ...
[英]How to ensure type safety with Scala's Refined library when using the same predicate for refinement
我是 scala 和精煉庫的新手,但我正在嘗試基於 UUID 創建兩種精煉類型。 為此,我這樣做了(注意:本例中的 Uuid 來自 eu.timepit.refined.string.Uuid): 但是,這似乎只創建別名,因此沒有類型安全性。 因此,如果我有一個像Product(a UuidA, b ...