在Haskell中,我可以在GHCI中编写一个自引用序列,如下所示:
?> let x = 1:map (+1) x
?> take 5 x
Run Code Online (Sandbox Code Playgroud)
产生:
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
然而,我对懒惰评估的直觉说这应该在扩展期间发生
let x = 1:map (+1) x
1:2:map (+1) x
1:2:map (+1) [1, 2] <-- substitution
1:2:2:3:map (+1) x
1:2:2:3:map (+1) [1, 2, 2, 3] <-- substitution
1:2:2:3:2:3:3:4:map (+1) x
...
Run Code Online (Sandbox Code Playgroud)
这显然不是正在发生的事情.我可以在正确答案中看到模式.我们只是在无限流中一次移动列表中的一个元素.我认识的模式,我可以在代码中应用它.然而,它与我的懒惰评估的心理模型不符.感觉有点"神奇".我的直觉在哪里错了?
这是我的问题.我已经阅读了许多关于如何在迭代它时删除列表成员的问题以及我尝试了答案提出的各种解决方案.碰巧他们似乎没有工作.我有这种类的列表:
class Walker {
public:
Walker(int);
~Walker();
double *x;
double *y;
double *z;
double weight;
int molteplicity;
};
Run Code Online (Sandbox Code Playgroud)
构造函数和析构函数如下
Walker::Walker(int particle_num) {
x = new double[particle_num];
y = new double[particle_num];
z = new double[particle_num];
}
Walker::~Walker() {
delete x;
delete y;
delete z;
}
Run Code Online (Sandbox Code Playgroud)
现在,列表
list<Walker> population;
Run Code Online (Sandbox Code Playgroud)
被定义为另一个类的成员.现在,如果元素molteplicity为null(通过另一个函数计算),我必须从类中删除成员,这就是我的方法:
for( it = population.begin(); it != population.end(); ) {
if( it->molteplicity == 0 ) {
it = population.erase(it);
} else {
++it;
}
Run Code Online (Sandbox Code Playgroud)
在运行时收到以下错误:
prog(22332)malloc:*对象0x7f838ac03a60的错误:未释放指针被释放*在malloc_error_break中设置断点以调试Abort陷阱:6
你看到错误吗?非常感谢您的帮助!!如果您需要更多代码,请告诉我.
拥有这组对象和语句:
QSet<Foo*> set;
iterator QSet::insert(const T & value) //type of the function I want to call
const Foo * get() const //type of the function I use to get the argument
set.insert(get()); //the line showing up as error
Run Code Online (Sandbox Code Playgroud)
我得到错误"没有已知的转换参数1从'const Foo*'到'Foo*const&".我想我在阅读这些类型时遇到了麻烦,因为我不知道应该怎么做才能使这项工作成功.
根据我的阅读,const关键字适用于其左侧的类型,顶级const除外,它可以写入它应用的类型的左侧.我的猜测是我必须将get()转换为引用,但我不确定如何做到这一点.
我刚刚读到了关于"延迟加载"设计模式的内容.
是否可以过度使用延迟加载来加载所有类并include(..)完全忘记?
这种方法的缺点是什么?
我正在尝试在状态栏菜单中使用NSProgressIndicator(不确定).我正在使用NSView对象作为menuitem的视图,然后查看进度指示器以显示它.但每当我尝试调用startAnimation时:对于进度,没有任何反应.当我尝试在普通的NSWindow上做同样的事情时,它可以很好地工作,而不是在一个menuitem中.
我是cocoa和objective-c的新手,所以我可能会忽略一些"显而易见的"但我已经搜索了很多但是没有成功.我发现一些关于menuitems的东西在显示时无法更新,你需要使用无边框窗口.但我无法在任何文档中证实这一点.
编辑:
好的,现在差不多了.当使用setUsesThreadedAnimation:并从MenuDelegate的menuWillOpen中创建一个新线程.该线程运行本地方法:
-(void) doWork(NSProgressIndicator*) p{
[p startAnimation:self];
}
Run Code Online (Sandbox Code Playgroud)
这将在打开菜单时以随机(?)为基础启动progressindicator.如果我startAnimation:直接打电话doWork:(仍然使用新线程),它永远不会工作.不setUsesThreadedAnimation:使进度条为动画创建自己的线程吗?
我是Oracle数据库的新手.我对Oracle中的日期时间概念知之甚少.我面临的问题是检索在特定日期输入的记录.但是当我在数据库上执行SQL查询时,它返回零记录.
数据库具有日期字段,其中包含具有日期时间值的记录.
SQL查询: SELECT * FROM table WHERE table.daterecord = to_date(03-Mar-2010)
它没有返回任何记录但是如果我将查询更改为
SELECT * FROM table WHERE table.daterecord > to_date(04-Mar-2010)
Run Code Online (Sandbox Code Playgroud)
它会返回一些记录.以上差异是因为时间.我如何从日期中提取时间值.我可以使用截断功能吗?提前感谢您的宝贵建议.
我开始研究一些框架.特别是Code Igniter让我很着迷.但通过我发现的文件夹搜索system/helpers包含21个PHP文件.在这些文件中,我们发现了数千个与html,xml,字符串,数组,数字,表单等相关的函数.
这应该很简单,但我真的不明白这些helper文件的含义.我的意思是:什么通常被认为是帮手?他们需要吗?我可以没有风险地删除它们吗?
有没有办法用相同的语法在PHP中模拟SQL的LIKE运算符?(%以及_通配符和通用$escape转义字符)?这样:
$value LIKE $string ESCAPE $escape
Run Code Online (Sandbox Code Playgroud)
你可以有一个函数,在不使用数据库的情况下返回PHP的评估吗?(考虑到$value,$string并且$escape已经设置了值).
OpenID Connect仍然有点新,我正在寻找开源软件来运行我自己的OpenID Connect提供程序(OP服务器).它应该尽可能简单(Java或PHP)才能快速设置测试环境.但它也应该允许我添加自定义插件,例如让OP连接到其他用户身份验证因素(2FA).
Connect2ID看起来像这样,但似乎还没有.我也见过其他解决方案,如GLUU或mitreid-connect ..
还有其他OP服务器软件可用作开源吗?哪一个最简单的开始?
有没有办法让我只从具有镜头的模块中导出特定的吸气剂xor setter?
例如,让我们假设一个数据结构具有一直存在的不变性,>= 0仅通过递增它并仅使用初始值创建来修改0:
module Something
( Counter
-- export only `count` getter
, make
, increment
) where
data Counter = Counter { _count :: Int } deriving (Eq)
makeLenses ''Positive
make :: Counter
make = Counter 0
increment :: Counter -> Counter
increment c = c ^. count %~ (+1)
Run Code Online (Sandbox Code Playgroud)
我怎么能只导出count吸气剂?
php ×4
c++ ×2
haskell ×2
cocoa ×1
codeigniter ×1
connect ×1
const ×1
frameworks ×1
haskell-lens ×1
helper ×1
invariants ×1
java ×1
lazy-loading ×1
lenses ×1
nsmenuitem ×1
nsview ×1
objective-c ×1
openid ×1
oracle ×1
pcre ×1
pointers ×1
reference ×1
sql ×1
sql-like ×1
string ×1