belongs :: Eq a => a -> [a] -> [a]
belongs e (h:t) = if ( h == e) then [] else belongs e t
belongs e [] = [e]
nub :: Eq a => [a] -> [a]
nub l = nub' l []
where
nub' [] new_list = new_list
nub' (x:xs) new_list = (nub' xs ((\ e new_list ->
case (belongs e new_list) of
[] -> new_list
(h:t) -> (h:new_list))(x new_list)))
在调用nub'
的返回类型中,[a]
的预期类型[a0]->[a0]
无法与实际类型[a0]->[a0]
匹配。可能的原因:nub'
应用于表达式:nub'
公式中nub'l[]
中的参数太少:
nub l
= nub' l []
where
nub' [] new_list = new_list
nub' (x : xs) new_list
= (nub'
xs
((\ e new_list
-> case (belongs e new_list) of {
[] -> ...
(h : t) -> ... })
(x new_list)))
在nub'
的第二个参数中,即表达式:nub'l[]
中的[a0]->[a0]
中的[a1]
与实际类型[a1]
在nub
方程中的[a1]
无法匹配:
nub l
= nub' l []
where
nub' [] new_list = new_list
nub' (x : xs) new_list
= (nub'
xs
((\ e new_list
-> case (belongs e new_list) of {
[] -> ...
(h : t) -> ... })
(x new_list)))
为什么不管用?我不能理解。请帮我一把。这些错误是可以理解的,但我不知道它们的原因。
您是否试图强制使用lambda和额外的括号((\e new_list->...)(x new_list))
调用函数?如果是这样,这对一个不起作用,即使该语法起作用,那么您的括号也会不匹配。
放弃“尝试函数调用”和lambda,直接在nub'
中使用x
和new_list
,或者如果您真的想重命名,使用let e=x在
中绑定e
。可以修复类型错误。
如果您真的想要lambda,那么您应该知道函数应用程序是使用空格而不是括号完成的,就像(\x->x+1)3
一样。
我试图创建一个程序,它提示用户输入一个输入,只有当输入是整数时才显示输出 null 任何形式的帮助都将不胜感激!:)
请问一下:在削弱题目中: 削弱论点/论证/论据/因果导致/另有他因的强度如何排序呢?
我正试图用Java编写一个关于制表方法的程序。对于那些不熟悉的人来说,制表方法中的一个步骤是将具有相同数字1的二进制文件分组。因此,我们将具有相同数字1的组放在arraylist中。因此,如果我们有五个不同的组(第一个组包含no 1的数字,第二个组包含1的数字,等等),我们将它们存储在另一个arraylist中。因此,arraylist是arraylist中的一个。 在制表法中,我们将每组的元素与
描述量 描述随机变量最完备的方法是写出该随机变量的概率分布。然而,正如我们在前面章节看到的,概率分布的表达往往都比较复杂,信息量很大。这如同我们购置汽车的时候,一辆汽车的全面数据可以说是海量的,比如汽车尺寸,油箱大小等等。我们选择一辆汽车时,往往只使用有限的几个具有代表性的量来代表汽车的主要特征,比如排气量,最大马力。我们信赖这几个量,因为它们可以“粗糙”的描述汽车的主要性能。这些量是汽车全面数据
我正在尝试使用袖珍斯芬克斯转录音频文件。 但我得到了错误: 这里有一个我需要转录的音频文件:从GitHub下载 最终,我将批量转录超过5个小时的音频文件,像这样,目前他们都抛出相同的错误。 这是我试图转录的同一文件的一些统计数据: 这个文件的一些配置可能有问题,我已经做了一些预处理,将其与MP3合并,从flac转换为wav,等等。 现在对我来说,最简单的方法是什么? 是否可以不将文件重新采样到16
为从发电机向负载传送最大功率,通常必须引入变压器,使得从负载的角度来看时,发电机的阻抗与负载相同。这里的情景大体类似。执行编码的转换器应当使信源在统计意义上与信道相匹配。经过转换器,从信道的角度看去,信源的统计结构应当与实现信道容量最大化的信源相同。定理9中的内容是说,尽管通常不可能实现完全匹配,但可以使它们达到任意接近程度。实际传送速率与容量C的比值可称为该编码系统的效率。它当然等于信道符号的实