请告诉我有什么问题?
data Stack' v = Stack' [v] Int deriving (Show) ... type StackInt = Stack' Int main = print(StackInt [1,2,3] 4)
我得到的错误是
Not in scope: data constructor `Stackint'
怎么了?
函数式编程中的纯函数是没有副作用的函数.其中一个含义是它不能改变输入参数的值.这可以被视为内存利用的缺点吗?
例如,假设我有一个函数,它只需要一个列表并在其中添加另一个元素.在C++中,它可以很简单
void addElem(std::vector& vec, int a)
{
vec.insert(a);
}
这个函数显然没有使用传递对象已经占用的大量内存.
但在Haskell中也会出现类似的情况.
addElem :: [Int] -> Int -> [Int] addElem xs a = xs ++ [a]
现在在这个计算中,因为xs没有改变它的值.所以我说的是,在某些时候,该函数将消耗xs的内存双倍大小,一个用于xs,另一个用于返回值.或者以某种方式延迟调用确保实际xs只通过在末尾添加一个元素才能返回?
我知道Monad是一种可以产生副作用的方法.但Monad可以用来简单地修改输入并返回它的值吗?
也可以将xs ++ [a]更改为:xs消耗更少的内存?
我通常在接受测试员采访时问这个问题.我们的软件非常复杂,具有GUI和后端组件.我们要求测试仪具有良好的分析能力,并且可以开箱即用.在这种情况下,以下问题是好问题还是太复杂/坏/难看?我们的要求是测试人员应该有经验.
问题
有一个名为Circles查找软件的软件.该软件将黑白图像作为输入(像素为黑色或白色).如果图像中有圆圈,它将突出显示红色边框并输出图像,否则它将输出相同的图像.它应该找到人类可以在图像中找到的所有圆圈.那么你将在这个软件上运行所有测试?通过测试我的意思是你将通过所有图像测试它的工作.请画出图像.
我需要创建一个特定类型的空列表.
我正在创建一个内部列表的堆栈.要创建空堆栈,我需要传递空列表.但是如何传递特定类型的空列表.
data Stack' a = Stack' [a] deriving (Show)
main = print("MyName", " ", Stack' Int [])
Run Code Online (Sandbox Code Playgroud)
而不是Int [],我尝试过[]::Int各种其他与括号的组合.但没有成功.目前我已经和解了
ls :: [Int]
ls = []
Stack' ls
Run Code Online (Sandbox Code Playgroud) 我只是有一个关于dbms_stats.gather_table_stats的简单问题.在我们的应用程序中,此语句在创建表的索引之后发生.它被称为
EXEC DBMS_STATS.GATHER_TABLE_STATS(< schemaname >, < tablename >).我们使用的是Oracle 10.2g.现在的问题是什么时候会收集到什么信息呢?是否会在每次更新表格时,或满足某些标准时收集?或者只有当你再次调用gather_table_stats时它才会被收集?
不幸的是我无法实现这个功能,我已经尝试了很多.
f5 ::(ab - > c) - >(a - > c,b - > c)
我试过这个
f5 k _ (Left x) = k x
f5 _ u (Right y) = u y
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助.