Types 内置类型上的OCaml模式匹配

我正在尝试编写一个多态函数,它需要根据参数的类型做一些稍微不同的事情。是否有任何方法可以使用内置类型对对象的类型进行模式匹配?我在想一些类似的事情: let to_string v = match v with | string -> v | int -> string_of_int v | _ -> "" 但这似乎不是一个有效的OCaml程序 我看到了,但这也不能完全回答我的问题。我更喜欢使用标准的内置类型,而不是为此构建新类型(尽管如果这是

Types 入门类系统理论书籍

我想学习类型系统理论。我没有任何类型系统理论的背景,所以我或多或少是个初学者(除了我读过的关于这个主题的文章,我觉得这些文章因为使用了符号而吓人)。有什么好书可以让我开始学习?我在看Benjamin C.Pierce的《类型和编程语言》一书。这适合初学者还是太难了?如果太难了,我还可以用什么来开始我的学习 谢谢 -- 干杯, Alex我认为类型和编程语言将是一个不错的选择 当我第一次读TaPL时,我也是一个类型理论的初学者,我并不觉得它太难理解 你会在你所看到的文章中看到很多符号,但是符号在使用

Types 将percolator调用限制为ElasticSearch中的类型

正如文档中所解释的,当我使用_percolator存储查询时,例如: curl -XPUT localhost:9200/_percolator/test/kuku -d '{ "color" : "blue", "query" : { "term" : { "field1" : "value1" } } }' 当我在“test”索引上过滤文档时,将运行此查询,但如果我想将其限制为“test”索引的“foo”类型,唯一的解决方案是在查询中添

Types golang中的json rpc,id为字符串

我是新来的 我使用这个包来执行json rpc v 1.0请求(因为golang只实现2.0) 我有一个问题,我调用的这个服务器将“id”作为字符串返回,如 "id":"345" 而不是 "id":345 我找到的唯一方法是使用字符串而不是uint64重新定义clientResponse type clientResponse struct { Result *json.RawMessage `json:"result"` Error interface{} `j

Types C++/CX-检查对象的类型?

是否可以在C++/CX中检查对象的类型 我有一个从ICustomObject派生的对象向量,当我从向量中枚举对象时,我想知道实际的对象类型是什么。这样我就知道我应该可以访问该对象的哪些属性。您可以使用dynamic_cast-如果该对象是MyObjectType对象,则结果将为非null,如果是另一种类型,则结果将为null ptr。我发现这很好 Type^ meh = element->GetType(); 事实上,这似乎更容易。。。键入^meh=element->GetType()

Types 用于定义另一个结构的typedef结构?

我是编码方面的新手,尤其是在嵌入式系统中。我想问一下这个代码是什么意思 typedef struct _Device_cb { USBH_Status (*Init) (USB_OTG_CORE_HANDLE *pdev , USBH_DeviceProp_TypeDef *hdev); void (*DeInit) (USB_OTG_CORE_HANDLE *pdev , USBH_DeviceProp_TypeDef *hdev); USBH_Status (*Requests)(USB_O

Types FSharp根据谓词定义类型

我的代码看起来像 type U0 = E1|E2|E3... type T2 = {field1: string; field2: string; field3: string} type T1 = T2*T2*T2 type T0 = T1*T1*T1 type P1(x) = (GetUnionCases typeof<U0>).map(fun x -> x.Name).contains(x) 我想对field1的类型强制执行一些谓词P1,该类型field1使得(Get

Types CFTimeInterval作为Float

我正在使用swift制作一个游戏,我需要使用Delta时间,但它是CFTimeInterval(Double),理想情况下,我需要它是一个浮点值,这样我就可以在我的其他代码中使用它 我猜这很容易,我就是搞不懂 把它转换成Float()我想: 把它转换成Float()我想: 把它转换成Float()我想: 把它转换成Float()我想: 我不知道你到底是什么意思。您想传递浮点值还是将其转换为浮点值?无论哪种方式,它都应该是其中之一: let someFloat: Float = 2.0; //

Types 西库利将不会",;类型();

我刚刚在我们公司的第五系统上安装了Sikuli。我们正在使用它来自动化一些每天必须以完全相同的方式完成的任务,并且可以很容易地用Sikuli编写脚本 正是在这第五个也是最后一个系统上,我遇到了麻烦。我看不出这个系统与我之前安装的任何其他系统有什么不同。Windows XP 32位操作系统。安装了Java 7、Python 2.74和Sikuli 1.0.1 现在,在这个例子中,type()函数似乎根本不起作用。任何其他视觉功能似乎都能完美工作。我遇到的问题就是这个type()函数。IDE中的日志

Types 创建对Fortran类型的引用

如果我有以下Fortran代码,使用先前定义的类型数组: subroutine use mModule, only: myTypeObjects TYPE (myType) :: myTypeReference myTypeReference = myTypeObjects(1) end myTypeReference是引用类型对象,还是进行复制?这里有一个简短的小程序,它输出1,2。 因此,这不是以python/C++的方式思考的参考。 a是它自己的对象,因此隐式赋值操作符执行默认复制

Types Haxe是否支持非引用类型的复合数据结构? P>我可以说,所有的复合数据结构都是引用类型,而不是值类型,类似于C++中java或指针(减去不安全特性)中的对象实例。Haxe语言是否支持用户定义的复合值类型,或者是否省略了这一点以保持与不具有此概念的语言(

Haxe是否支持非引用类型的复合数据结构? P>我可以说,所有的复合数据结构都是引用类型,而不是值类型,类似于C++中java或指针(减去不安全特性)中的对象实例。Haxe语言是否支持用户定义的复合值类型,或者是否省略了这一点以保持与不具有此概念的语言(如Java)的更清晰映射?据我所知,一切都是通过引用实现的,大多数LIB在必要时使用某种形式的.copy()方法来解决这一问题

Types 从F中的二进制搜索树中删除元素#

我正在尝试编写一个从BST中删除元素的方法。到目前为止,这就是我所拥有的。我不确定我是否走上了正确的道路,或者是否有更好的方法通过使用模式匹配来匹配不同的删除情况,即:无子项、1子项、2子项 type 'a bst = NL | BinTree of 'a * 'a bst * 'a bst;; let rec smallest = function | NL -> failwith "tree is empty" | BinTree(m, lst, rst) ->

Types 如何构造Agda中的可能非空集

我知道(A\/~A)在一般情况下是不可证明的。在(a\/~a)不可证明的情况下,如何构造集合a的例子,这是可能的吗?如果可能的话,没有量词也可能吗 我知道(A/~A)在一般情况下是不可证明的。怎么走 关于构造集合a的示例,其中(a/~a)不是 可证明 您已经给出了一个示例:A\/~A本身 open import Level open import Data.Empty open import Relation.Nullary open import Data.Sum lem-for : ∀ {

Types 如何统一这些类型?

我有以下来自purescript express的代码(但问题更一般) 但是现在我想在setHandler getPointsSet :: forall f. String -> Aff ( fs :: FS | f ) Foobar 这将给我以下编译器错误 [1/1 TypesDoNotUnify] src/Main.purs:31:5 v 31 send "Yeah! " ^ Could not match type

Types 匹配时的Coq nat类型检查

我对第一个带有O的分支如何返回类型为(0>0)->nat的函数感到困惑。问题是:如何将False与endanat匹配?似乎没有返回值?!那是什么意思?我不是专家。但是从功能的角度来看,pred1的返回值是一个函数返回nat,而不是anat。对于任何输入n,结果函数将n>0的证明pf转换为nat 函数不需要(或不能)返回不存在参数的任何值。在极端情况下,当功能域为空时,编码域也为空(或可视为空) 这就是为什么当pf处于False(这是一个空类型)时,函数不能返回任何特定的nat值,并且它必须不返回

Types Julia嵌套类型初始化

我使用了下面的代码 abstract P0 type P1 <: P0 x::Float64 y::Int64 P1()=new() end type P11 <: P0 z::Int64 p::P1 P11()=new() end 我获得了P1型的#unde,如下所示: P11(2211879264,#undef) 如何正确初始化它?如果要对字段值实施约束或需要不完整的初始化,则只需要内部构造函数。后者就是您在这里所做的(请注意,不仅pp.p,而且

Types 类Pascal语言中的类型等价

Oberon-2语言报告“编程语言Oberon–2”在附录A中有以下定义: Ta和Tb类型的两个变量a和b的类型相同,如果 Ta和Tb都由相同的类型标识符表示,或 Ta在Ta=Tb形式的类型声明中声明为等于Tb,或 a和b出现在变量、记录字段或正式参数声明的同一标识符列表中,并且不是开放数组 给定类型声明 Ta = INTEGER Tb = INTEGER Tc = Tb 上述定义第二段表明: Ta和Tb是不同的类型(未声明Ta=Tb) Ta和Tc是不同的类型(未声明Ta=Tc)和 Tc和I

Types .peek()的返回类型为';t可窥视<;T>;

我正在尝试使用Rust版本1.22.1编译以下代码: use std::str::Split; use std::iter::Peekable; // This is fine... fn tokenize<'a>(code: &'a str) -> Split<'a, fn(char) -> bool> { code.split(char::is_whitespace) } // ...but this is not... fn toke

Types 在树类型检查SML中查找值

我需要编写自己的数据类型——或者,或者,eitherTree,它们有自己的类型。有了这些,我需要创建一个函数,以int和eitherTree作为参数,在树中搜索,如果树中存在值,则返回true。类型必须为:eitherTree->int->bool 到目前为止,我已经: datatype either = ImAString of string | ImAnInt of int datatype eitherTree = eLEAF of either | eINTERIOR of (eithe

Types Spotfire,在Y轴上绘制货币值

我正在spotfire中创建瀑布图,在X轴上有项目名称 我想在Y轴上显示项目成本。表中有两列,一列为货币类型(显示货币符号,如美元、美元、卢比等),另一列为项目成本 在Y轴上,我想显示eg的成本和货币类型$500或10000卢比等。我连接了字段货币类型和项目成本,但数据类型为字符串,因此我无法在Y轴上显示确切的货币 有什么解决办法吗?听起来好像表格中的货币符号各不相同。对吗?我的理解是,混合货币类型是没有意义的,所以我会为每种货币类型制作一个单独的图表。您还可以创建一个文档属性,该属性类似于货币

Types F#let add1 x=x和#x2B之间的差值;让add2 x=x+;1.

让add1 x=x+1和让add2 x=x+1之间有什么区别。空间的意外移除改变了功能类型,从 val add1:x:int->int 到 val add2:x:(int->'a)->'a 据我所知,第一个type语句说add1将int映射到int。但是第二个是什么意思呢 嗯,'a表示泛型类型,但是函数'add2'如何返回泛型类型 谢谢你的帮助。这是F#语法的一个怪癖:紧跟数字文字的加号或减号分别被视为正数或负数,而不是紧跟数字的运算符 > 42 it : int = 42 > +

Types 具有泛型类型的多个特征的类型别名

我的问题与中提到的问题类似 我正在尝试创建一个通用向量结构,我有以下工作: use std::ops::{Add, Sub}; #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub struct Vec2<T> where T: Add<Output = T> + Sub<Output = T> { pub x: T, pub y: T, } impl<T> Vec2<

Types 在研究简单类型的Lambda演算时发现了哪些奇怪的方程

我在学习简单类型的Lambda微积分,但我对这些方程感到困惑 我想知道他们叫什么,他们是如何工作的 谢谢你的帮助 从拍摄的图像它们通常被称为演绎规则,或者,一般来说,推理规则。由于Gentzen在自然演绎中的使用,带有推理条的符号是一种错误的符号 确切的解释取决于你所描述的系统,但总体思路是顶部的东西暗示/允许底部的东西。在这个特定的例子中,它看起来并没有那么正式,但是如果你以前看过这种东西,就已经足够好了。有关人们通常编写的类型理论的更正式的语义,请参见 在您的具体案例中,我将规则翻译为: 当

Types ID字段的数据类型(int或varchar)

ID字段的可取数据类型是什么(如州ID、web表单ID或employeeID)? 最好使用varchar的int数据类型(为什么)?对于每个用户都是唯一的Id,建议使用int,因为这听起来更像是一个sql问题,在自动增量模式下

Types 良好实践-类型转换

我的应用程序从文件中读取数据,并用该数据实例化对象。我可以编辑和创建新对象并设置属性。我的问题是属性“date”及其类型。我不知道是否应该将字符串日期转换为日期类型?我不会在退出时将数据写入文件或数据库。它们仅存在于应用程序生命周期中 这真的取决于你,但是如果你要操纵它和/或大量使用它,Date将非常有用。如果它将为您节省代码行,请继续使用它。如果只是小事,你可以决定走哪条路。尽管如此,无论哪种方式,Date都是首选——如果你有大量的更改,那么它可能不值得更改。就像@PhillipSchmidt

Types Go—;如何处理结构类型之间的公共字段

如果我有两种类型: type A struct { X int Y int } type B struct { X int Y int Z int } 如果两种方法都访问同名字段并返回它们的总和,那么有没有办法在不需要两种方法的情况下实现以下功能 func (a *A) Sum() int { return a.X + a.Y } func (b *B) Sum() int { return b.X + b.

Types 同名子例程

我试图为两个子例程使用相同的名称,但得到错误: gfortran gshapes.f08 gshapes_utest.f08 -o gshapes_utest.x gshapes_utest.f08:53.41: call ellips%set_ellipse_corner (crnr1, crnr2) 1 Error: Type mismatch in argument 'xlen' at (1); passed TY

Types 是否可以在静态方法中获取类类型?

Dart代码: class User() { static onmystatic() { printCurrentType(); // should print: User } } 请注意类User中的printCurrentType(),是否可以实现它?我尝试了this.runtimeType,但它提醒我此不在范围内。由于onystatic()是静态的,所以它调用的任何函数都必须是静态的(或某个对象的实例方法),所以我假设printCurrentType()也是静

Types 为什么Swift语言指南建议使用Int;即使已知值为非负“时,也不例外;?

这是一个关于Swift编程风格的问题,特别是IntvsUInt Swift编程语言指南建议程序员使用通用的有符号整数类型Int,即使已知变量为非负。发件人: 仅当您特别需要与平台本机字大小相同大小的无符号整数类型时,才使用UInt。如果不是这种情况,则最好使用Int,即使要存储的值已知为非负。对整数值一致使用Int有助于代码互操作性,避免在不同的数字类型之间转换,并匹配整数类型推断,如类型安全和类型推断中所述 但是,UInt在32位体系结构上是32位无符号的,在64位体系结构上是64位无符号的,

Types 如何将本地宏中存储的值从字符串更改为数字?

我想根据“$S_DATE”宏中存储的年份生成一个带有滞后年份的变量。我已将年份存储在名为date的宏中: . local date substr("$S_DATE",8,.) . display `date' 2015 clear set more off set obs 10 gen y_passed = _n local date = substr("$S_DATE",8,.) display `date' gen start_year = `date' - y_passed

Types Ocaml推断类型改为int list';单子

我不明白为什么这个函数的类型是(int list->int->int)('a list->int->'a)。 我需要编写返回列表中第n个元素的函数,该元素具有泛型类型(由用户定义了类型exp:) 如何编写该函数?为什么Ocaml推断列表是int-list而不是“列表”Ocaml解释(getElement elems index)-1,因为函数应用程序比-强大 let rec getElement list index = match list with | [] -> raise OutO

Types 阿达字符串固定

大家好, type String is array (Positive range <>) of Character; 它失败了 例如: With Ada.Text_IO ; Use Ada.Text_IO ; Procedure fixed is max_String : String( 1 .. integer'last ) ; begin get ( max_String ) ; put ( max_String ) ; End

Types 重载构造函数时的类型问题

我在重载构造函数时遇到问题,它不会让我告诉它变量包含什么类型。我怎样才能强制一个类型,或使它无论如何工作 constructor(points: Point[], name?: string); constructor(walls: Wall[], name?: string); constructor(pointsOrWalls: (Wall | Point)[], name?: string) { if (pointsOrWalls[0] instanceof Point) {

有没有办法在typescript中定义新的(而不是别名)类型?

如果我定义以下类型: type seconds = number; type milliseconds = number; 这些类型只是别名,以下语法不会引发任何错误: var x:seconds = 1; var y:milliseconds = x; 而我希望typescript可以防止在没有强制转换的情况下执行这样的任务。有没有办法创建新的命名类型 注意:我发现了,不确定以后是否有新的发布。恐怕这只是一个解决办法(在中查看) 接口秒{ “这些是秒”:字符串 值:数字 } 接口毫秒{ “

Types MethodError:`convert`在单独的文件中使用模块中定义的类型时

这个问题涉及使用类型和类型的向量。我得到了MethodError:convert当我有两个文件时,Foo.jl和Baz.jl,它们分别包含一个模块,每个模块包含一种类型 Foo.jl的内容: module FooModule type Foo bar::Int end end module BazModule include("Foo.jl") type Baz qux::Vector{FooModule.Foo} end end Baz.jl的内容: module FooModu

Types 为什么数组{Float64,N}不能是参数为数组{Number,N}的函数的参数?

我发现Julia中的Array不是协变的,Number的子类型不会自动转换为超类型 我的意思是,比如 head(a::Vector{Number})=a[1]或head(a::Vector{Real})=a[1] 无法执行头([1,2,3]) 而head(a::Vector{T}),其中{T请参见手册中的这一节:这说明了这一点。请注意,head(a::Vector{T})有一个缩写形式,其中{T head(a::Vector{<:Number}) =...

Types Coq:创建布尔和nat的超级类型

我想创建一个混合类型的boolean和nat列表。此列表必须包含某些超类型的元素:boat,其中每个boolean都是boat,每个nat都是boat 我遇到的问题是,这种超级类型的船应该有一个船,这意味着应该有一种方法来决定两个船是相同还是不同。由于nat和boolean都有这样一个相等判定符,因此超级类型也应该有一个相等判定符 在下面的示例中,我创建了一个超类型,但我无法显示决定等式的引理引理boat_eq_dec:forall x y:boat,{x=y}+{x y}。 Inductive

Types 静态和动态类型的选择对于语言的程序员来说是不可见的吗?

来自Turbak编程语言中的设计概念 尽管有些动态类型语言具有简单的类型标记(例如,Perl变量名以一个字符开头,表示值的类型:$for 标量值,@表示数组值,%表示散列值(键/值对)),动态类型语言通常具有 没有显式类型注释 在静态类型语言中,反之亦然, 其中,显式类型注释是规范。大多数语言起源于 Algol 68,如艾达、C/C++、java和Pascal,需要类型为 为所有变量、所有数据结构组件以及所有函数/过程/方法参数和返回值显式声明。然而,有些语言 (例如,ML、Haskell、FX

Types 类型转换在Python中是如何工作的?

我参加了一次工作面试,面试官问我“python如何决定将“a”和“1”中的哪一个转换为int类型?”。那么答案是什么呢?python如何知道哪个字符串能够转换为整数?它依赖于编程语言吗?Java对此有不同的规则吗?在python中,我们基本上使用3种方法。int()、float()和str()。如果必须将字符串类型转换为整数值,则将使用int()。 将其视为一个适当的参数函数。现在,如果您尝试传递一些参数,它将查找严格的参数,如果没有找到,您将得到一个错误。 举个例子。 在python中传递in

Types 在OCaml中分解产品类型分配

我通常不满意这样编写代码: let load_record_field cursor gets geti gett a = function | 0x01 -> let c, s = gets () in (a.a_record_uuid <- s; `More_record c) | 0x02 -> let c, s = gets () in (a.a_group <- s; `More_record c) | 0x03 -> let c, s = g

Types 如何正确处理bucklescript中原始js函数调用的结果类型

Bucklescript允许定义原始js函数调用,但我不清楚应该如何处理返回类型。似乎可以使用任何类型,它仍然可以工作。例如,此代码编译和运行时不会出现问题: let f = [%raw {| function() { return 4; } |}] let x : (string option) list = f () 编译器不会抱怨x具有类型(字符串选项)列表或任何其他伪造类型。通常,我只依赖类型推断,但我想将原始js函数调用的结果分配给结构中的字段,因此我必须在结构类型

Types 如何在Julia中定义任何浮点类型的数组?

我尝试了Array{AbstractFloat,1},但这不适用于Array{Float64,1}如果您想要一个可以包含任何类型浮点值的向量,那么正确的类型是vector{AbstractFloat},它可以这样构造: julia> v = AbstractFloat[] AbstractFloat[] julia> push!(v, 1.5) 1-element Vector{AbstractFloat}: 1.5 julia> push!(v, big(2.0)^10

上一页 1 2  3   4   5   6    7   8   9  ... 下一页 最后一页 共 47 页