我编写了以下简单的代码,我希望当我写"男性"时,这段代码会问我一次"它是男性吗?" 如果我输入"否",它会在屏幕上写下"她是女性".
male :- ( print('is it male ? '),read(yes)) -> true; asserta( not(male)),female.
female:- not(male),print('she is female').
not(P) :- (call(P) -> fail ; true) .
Run Code Online (Sandbox Code Playgroud)
但此代码有以下错误:
uncaught exception: error(permission_error(modify,static_procedure,not/1),asserta/1);
Run Code Online (Sandbox Code Playgroud)
swi-prolog中的错误是:
ERROR: asserta/1: No permission to modify static_procedure `not/1'
Run Code Online (Sandbox Code Playgroud) 我有一个非常奇怪的问题.
我有这样的查询,我在SQL Server 2008 R2中运行:
SELECT TOP (20) *
FROM MyTable
WHERE a = 0
AND b = 0
AND c = 0
Run Code Online (Sandbox Code Playgroud)
在MyTable上使用我的索引
但这个没有:
SELECT TOP (20) *
FROM MyTable
WHERE a = 0
OR b = 0
OR c = 0
Run Code Online (Sandbox Code Playgroud)
我想在我的程序中执行第二个查询.如何更改第二个查询以使用索引?
该指数是:
CREATE NONCLUSTERED INDEX [MyIndex] ON [dbo].[MyTable] (
[a] ASC,
[b] ASC,
[c] ASC
)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS …Run Code Online (Sandbox Code Playgroud) 我知道可以将一个流复制到另一个流,sourceStream.CopyTo(targetStream);但我想将 的内容复制sourceStream到两个不同的Tasks 中的两个目标流。当我两次调用此方法时,第二次流为空。
这可能吗?一种简单的方法是将流内容加载到内存中,然后将其复制到目标上,但可能会导致OutOfMemoryException.
如果重要的话,我正在使用 .Net 4.5