[英]What is a difference between refinement type and anonymous subclass in Scala 3?
匿名 class定義為匿名 class 是 Scala 編譯器根據新表達式生成的合成子類,其中 class 或特征名稱后跟花括號。 花括號包含匿名子類的主體,它可能是空的。 但是,如果 new 后面的名稱引用包含抽象成員的特性或 class,則必須在定義匿名子類主體的花括號內具體化這些成員。 細化 ...
[英]How to define a polymorphic `Vector` type in Lean 4 as a `Subtype` of `List`?
Lean 4 前奏中的List類型實現了很多好東西,例如List.map 、 List.join等。 依賴類型語言中的一個經典示例是Vector an ,其中a是容器元素的類型, n是長度。 這使您可以做一些好事,例如編寫 function concat (u: Vector am) (v: V ...
[英]Proofs of structural properties of arguments in match in coq
我想在 coq 中編寫一個安全的 zip function ,它接受參數長度相等作為參數。 解決此類問題的一般方法是什么? 我會很感激關於在 coq 函數的上下文中使用細化類型的評論和資源。 ...
[英]Is there a pattern/trick to enforce '<:' when defining type aliases with '='
我遇到了另一個 scala 的子類型關系不可傳遞的問題( https://github.com/scala/bug/issues/12164 ),我開始考慮是否有一些通用的解決方法。 長話短說: 這不會編譯: 現在我有T <: Thing { type General <: G ...
[英]Confusion about type refinement syntax
在類型級別,我偶然發現以下內容: 引起我興趣的行是type Aux[A, S0] = StSource[A] {type S = S0} 在paerticular {type S = S0}在StSource[A] {type S = S0} 我真的不知道如何閱讀這個,就像解釋這里涉及的構造 ...
[英]Simple Refinement Types in Haskell
從 Scott Wlaschin 的博客文章和“Domain Modeling made Functional”一書以及 Alexis King 的文章中,我認為域 model 應該編碼盡可能多的關於域的信息作為類型中的實用信息,以便“使非法狀態無法表示”並獲得強有力的保證,使我能夠編寫完整的域邏輯 ...
[英]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 ...
[英]Type refinements in Scala but without using refined
我正在嘗試創建一個基於 String 的 HexString 類型,它應該滿足“它只包含十六進制數字”的條件,如果可能的話,我想讓編譯器為我檢查它。 一個明顯的解決方案是使用細化並編寫如下內容:type HexString = String Refined MatchesRegex[W.`"""^( ...
[英]Type refinement “forgetting” the value within a statement?
從流程轉移,我經常將mixed類型提煉為更好的格式。 在 typescript 中,我使用unknown而不是混合。 產生以下用於錯誤處理的代碼片段: 據我所知,這應該有效嗎? - 我首先檢查cause是否是有效的 object,然后測試其中是否incomplete 。 但是Array.isAr ...
[英]How can I turn a [TExp a] into a TExp [a], or otherwise apply refineTH to multiple values programatically?
我最近一直在 Haskell 中使用精煉的精煉類型,並且遇到了一個主要的可用性問題。 我不知道如何在編譯時優化整個值列表。 例如我可以寫: {-# LANGUAGE TemplateHaskell #-} import Refined oneToThree :: [Refined Positi ...
[英]Simple liquidhaskell example fails expected behavior
我最近開始玩液體 haskell,從我能找到的所有教程中,我找不到任何像下面這樣的例子。data MaybePerson = MaybePerson { ...
[英]flowtype nullable object immutable property refinement
我想對可以是 null 的屬性使用細化。 這個帶有檢查屬性的 object 然后作為參數傳遞給 function。 嘗試流程它不應該與具有可變屬性的 object 一起使用,因為此屬性稍后可以更改為null 。 所以這就是我使用不可變屬性的原因。 但它仍然不起作用。 有沒有辦法通過 object ...
[英]Flow type refinement in events
好吧,我有一個從文本輸入“onchange”發生的事件。 我想在事件處理期間獲得的明顯字段之一是輸入的新值。 一個簡單的例子如下所示: 然而,這會扼殺流程:流程抱怨: 錯誤:(34, 47) 無法獲取target.value因為EventTarget [1] 中缺少屬性value 。 ...
[英]Can I force certain keys in a map to have certain types in scala?
例如,我知道在運行時我將只有以下鍵: string-key-1 , number-key-1 。 我可以像這樣創建鍵映射到鍵入的值: 然后,我可以強制執行以下類型: 但這仍然要求客戶端知道string-key-1類型不能映射到BigDecimalContainer 。 有 ...
[英]AutoRefineV not picking up explicit inference from Map?
我有一個像這樣的精煉類型定義: 我可以在表示值的單行中使用細化,但由於某種原因,即使類型是顯式的, autoRefineV也不會在Map的上下文中使用它。 例如: 我得到的錯誤是: 所以由於某種原因,該值不是從字符串自動轉換為D類型? 我是否需要定義Map[D, St ...
[英]Refine a string to only certain values scala
有沒有辦法將字符串細化為僅某個值的子集? 例如,我在哈希映射中有500個鍵的列表。 但我只想插入某些鍵。 例如,“abcd”和“aaaa”是有效鍵,但“abdc”無效。 有沒有辦法將String細化為給定的500個鍵中的一個? 我猜這樣做的方法只是一個非常長的正則表達式,匹配abc ...
[英]Can I define parametric data type where parameters are not equals between in Haskell?
問題: 讓我們假設我們有一個包含起點和終點的乘客: 題: 如何將類約束應用於起點不應等於終點的乘客? PS:我在 Scala 社區也問過類似的問題,但是沒有得到任何答復。 考慮到scala 的精煉庫受到了Haskell 精煉的啟發,也聽說了液體 Haskell,我想知道如何使用 Hask ...
[英]Liquid Haskell: Error with Proof Combinators and Types Refined by Predicates
作為我遇到的問題的一個最小例子,這里是自然數的定義,加倍函數,以及由偶數謂詞改進的類型: 我想首先聲明{-@ double' :: Nat' -> Even' @-} ,然后證明這是真的,但我的印象是我必須首先編寫證明,然后使用castWithTheorem (這本身對我有用)因此 ...