type-inference

    15热度

    3回答

    我使用=:=作为示例类型lambda来进行简单的最小示例。 =:=类型有两个参数,我想在类型级别咖喱一个。 我把幼稚的做法type Curry[G] = {type l[L] = L =:= G}但在实际使用它会导致错误: type X = Int type Y = Int type CurryInt[T] = T =:= Int type Curry[G] = {type l[L] =

    3热度

    1回答

    使用方法引用时,我有这样的代码在Java中推断类型: Flowable.just(1,2,3) .flatMap(Flowable::just); 这个代码在科特林: Flowable.just(1,2,3) .flatMap(Flowable::just) 虽然Java代码编译罚款,科特林编译器说: :“错误:(47,30)Kotlin:对于类的一个类型参数Flo

    1热度

    1回答

    在下面的代码 Idris> :t \x => x + x \x => x + x : Integer -> Integer 伊德里斯导出一个整数类型的X变量,其中我认为它应该得到像在Haskell接口不限于: Haskell> :t (\x y -> x + y) (\x y -> x + y) :: Num a => a -> a -> a 然后它甚至不像一个Integer,接受Do

    1热度

    1回答

    在下面的代码中,我无法正确安排输入/输出,以至于()和()都按预期工作。我试过在属性和函数参数中切入/切出,但总是以不正确的键入错误结束。 class KStateMachine(private val states: List<StateHandler>) { var currentState: KClass<out StateHandler> private set priva

    2热度

    1回答

    使用TypeScript,您可以显式指定类型或让编译器推断它们。 有没有办法将推断出来的类型添加到原始源代码中?编辑代码时 private posX: number = 0; private posY: number = 0; private sizeX: number = 0; private sizeY: number = 0; 这样: 例如,我会先从: private posX =

    0热度

    1回答

    protocol A {} extension Int: A {} extension String: A {} enum Result<T> { case success(T) case error(Error) } typealias BaseFunc = (Result<A>) ->() func foo(r: Result<Int>) {} func

    0热度

    1回答

    我试图使用Tern对某些Javascript代码执行类型推断。但是,类型推断似乎并没有在代码中使用JSDoc注释。 我使用代码/** @type {Foo} */ let x;作为问题的示例。在Tern website's demo page(使用CodeMirror)上,编辑器能够推断出x的类型为Foo。 然而,当通过节点本地运行时,我得到了这个:{ type: '?', exprName: '

    4热度

    1回答

    我是Ocaml的新手,当我为lambda微积分编写解释器时遇到了一个奇怪的错误。 type exp = Num of int | Str of string | Err | Var of string | Lambda of string * exp | App of exp * exp ;; type value = N

    3热度

    2回答

    此代码 {-# LANGUAGE GADTs #-} data Expr a where Val :: Num a => a -> Expr a Eq :: Eq a => Expr a -> Expr a -> Expr Bool eval :: Expr a -> a eval (Val x) = x eval (Eq x y) = (eval x) == (e

    3热度

    1回答

    这种精细编译: def walk[X](a: X)(f: X => Boolean): Boolean = f(a) walk(1)(_ => true) 编译没有问题,以及: def walk(a: Int)(f: Int => Boolean = _ => true): Boolean = f(a) walk(1)() 这不: def walk[X](a: X)(f: X =>