type-signature

    2热度

    1回答

    问题 为什么 val of_bindings : (key * '_a) list -> '_a t val of_bindings : (key * 'a) list -> 'a t 不同的签名? 语境 我有一些地图扩展实现: MAPEXT.ml: module type T = sig include Map.S val of_bindings : (key * '

    0热度

    1回答

    有人可以解释下面的代码,它是如何一步一步做的,请。我知道这是定义一个函数,它的输入,但到底是什么(+)做什么,以及为什么有三种不同的Int S IN plus和4个Int S IN plusplus的类型,而它好像有只有3个参数在plusplus的代码? plus :: Int -> Int -> Int plus = (+) plusPlus :: Int -> Int -> Int ->

    1热度

    1回答

    我在学习Rust并学习了特质界的章节。在该章中,他们以+(加号)运算符为例列举了where子句中所有必需的特征。 什么其他运营商被允许在Rust的特质?我搜索了,但我无法找到任何关于此的文档。 Rust是否支持'或'符号,括号,否定?

    1热度

    3回答

    为什么Haskell不使用某种特殊的格式来反映这一点,或者 - > c可以用另一种方式来理解?

    2热度

    1回答

    假设我有.3g2文件。我注意到,它们可以包含不同编码(AAC,AMR)的音轨。或者,例如,.m4a文件可以包含(AAC或ALAC)编码的音频轨道。 MediaInfo检测到它很好,但我希望能够使用C++来做到这一点。 我的问题是,我如何检测媒体文件中音轨的类型? 谢谢。

    1热度

    2回答

    对于Haskell语法和函数式编程语言,我仍然是初学者,所以当我查看Data.Function.on的类型声明,即on :: (b -> b -> c) -> (a -> b) -> a -> a -> c时,我的解释是它需要四个参数: (b -> b -> c),(a -> b),a,a,并且返回c。但是,当我查看Data.Function.on的一般使用语法(*) `on` f = \x y

    3热度

    1回答

    我的功能不起作用。我尝试了许多不同的类型签名。如果我删除了类型签名,它不能用点号作为“p”。 fak :: (Num a, Ord a) => a->a fak x | x <= 1 = 1 | otherwise = x*fak (x-1) ncr :: Integral a => a -> a -> a ncr n k = (fak n) `div` (fak(n-

    0热度

    1回答

    我想在Android中使用XADES-BES签名文件。我找到了一个关于这个的图书馆。建立和创建APK工作正常。选择文件并单击Sign按钮后,它会产生运行时错误。调试后,我发现有一个关于上下文的错误。我在程序崩溃的地方添加了一条评论。代码的相关部分如下: String sourceFilePath = filePathView.getText().toString(); if(sou

    2热度

    5回答

    我最近开始通过阅读LearnYouAHaskell和从互联网上随机发表的文章开始学习Haskell。 我很难理解更复杂的函数类型。 我明白一些例子。 > :t map map :: (a -> b) -> [a] -> [b] 它需要的功能(这需要一个并给出了B,即A和B可以是不同类型的)和一个公司的名单,并返回b的列表。 > :t fst fst :: (a, b) -> a 获取2

    0热度

    1回答

    . :: (a -> b) -> (c -> a) -> c -> b f . g = \ x -> f (g x) 为什么这个定义是非法的?审美选择,还是正式的必要性?