我在Prolog中有这个代码:
dynamic(player_at/1).
player_at(house).
goto(X) :- retract(player_at(house)), assert(player_at(X)).
Run Code Online (Sandbox Code Playgroud)
但我仍然得到这个错误:
uncaught exception: error(permission_error(modify,static_procedure,player_at/1),retract/1)
Run Code Online (Sandbox Code Playgroud)
当我执行goto(foo)时.
我已经阅读了动态文档,但我无法弄清楚如何使用它,至少在gprolog中.我错过了什么吗?
你们当中有多少人实际使用纯XML数据库而不是RDBM?前者似乎正在获得动力,但我不明白其优势.有人在乎解释吗?
作为一个非.net程序员,我正在寻找旧的vb函数的.net等价物left(string, length).它很懒,因为它适用于任何长度的字符串.正如预期的那样,left("foobar", 3) = "foo"最有帮助的是,left("f", 3) = "f".
在.net中string.Substring(index, length)抛出异常超出范围的所有内容.在Java中,我总是使用Apache-Commons lang.StringUtils.在Google中,我不太了解字符串函数.
编辑:
@Noldorin - 哇,谢谢你的vb.net扩展!我第一次遇到,虽然我花了几秒钟在c#中做同样的事情:
public static class Utils
{
public static string Left(this string str, int length)
{
return str.Substring(0, Math.Min(length, str.Length));
}
}
Run Code Online (Sandbox Code Playgroud)
请注意静态类和方法以及this关键字.是的,它们就像调用一样简单"foobar".Left(3).另请参见msdn上的c#extensions.
我有一个项目列表,我希望每个项目都成为一个网址.
列表:
<root>
<tags>
<tag>open source</tag>
<tag>open</tag>
<tag>advertisement</tag>
<tag>ad</tag>
</tags>
</root>
Run Code Online (Sandbox Code Playgroud)
XSLT:
<xsl:template match="*">
<div class="tags">
<xsl:for-each select="/post/tags/tag">
<a href="#">
<xsl:value-of select="//tag"/>
</a>
</xsl:for-each>
</div>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
输出:
<div class="tags">
<a href="#">open source</a>
<a href="#">open source</a>
<a href="#">open source</a>
<a href="#">open source</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:我认为在创建子窗口期间(即我的按钮)不会发送WM_CREATE消息.因此,通过在WM_CREATE期间调用SendMessage,我正在向尚未创建的窗口发送消息.现在的解决方案是在WM_SHOWWINDOW消息期间调用SendMessage().子窗口是否在创建时发送WM_CREATE消息?
为什么按钮上没有显示位图?位图为180x180像素.
我有一个资源文件:
Bit BITMAP bit.bmp
Run Code Online (Sandbox Code Playgroud)
然后我创建了主窗口和一个子"BUTTON"窗口,其中包含:
HWND b, d;
b = CreateWindow(L"a", NULL, WS_OVERLAPPEDWINDOW, 0, 0, 500, 500, 0, 0,
hInstance, 0);
d = CreateWindow(L"BUTTON", NULL, WS_CHILD | WS_VISIBLE | BS_BITMAP,
10, 10, 180, 180, b, 200, hInstance, 0);
Run Code Online (Sandbox Code Playgroud)
然后,在我的Windows程序中,我向"BUTTON"窗口发送"BM_SETIMAGE"消息:
HBITMAP hbit;
case WM_CREATE: // It works if I change this to: case WM_SHOWWINDOW
hbit = LoadBitmap(hInstance, L"Bit");
SendMessage(d, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hbit);
Run Code Online (Sandbox Code Playgroud)
LoadBitmap()返回一个有效的句柄,因为它没有返回NULL,我能够使用BitBlt()函数在客户区显示位图.所以我要么没有正确发送消息,要么我没有正确创建"按钮"窗口.
我究竟做错了什么?
谢谢!
我希望能够使用Python下载页面及其所有相关资源(图像,样式表,脚本文件等).我(有点)熟悉urllib2并知道如何下载个人网址,但在我开始攻击BeautifulSoup + urllib2之前,我想确保没有相当于"wget --page-requisites http "的Python ://www.google.com ".
具体来说,我有兴趣收集有关下载整个网页所需时间的统计信息,包括所有资源.
谢谢马克
我在这里没有看到这个问题的答案,这让我害怕它非常简单而且我只是遗漏了一些东西,但是这里有.
背景,随意跳过:几年前我跳过了我的学士学位需要一门课程.理论上它是计算机图形学,但自从我离开它以后,它变得更加游戏开发.这很好,因为对我而言,它比填充算法和翻译更有趣,以及它曾经是什么.这是一个每隔一年才提供的第四年课程,但我已经成功地与该部门进行了交谈,让我对同一主题进行了第四年的独立研究并称之为足够好.
"运行"独立研究的教授没有教授实际的计算机图形学课程,所以虽然他是一个聪明的家伙,但这不是他的领域.所以我的大部分问题留给我,一本教科书和互联网.你知道......就像一个独立的研究应该.:)
/背景
我有一个喜欢开发游戏系统以获得乐趣的伙伴.我计划参加他的一款桌面游戏并将其变成使用XNA的电脑游戏.
我没有预见到游戏机制会遇到任何难以克服的挑战,但我很好奇的是大多数游戏如何保存他们的内容?我的意思是在几个方面,希望我可以清楚地表达它们.
以您曾经玩过的任何RPG为例.您可以点击"保存"按钮并保存世界,您的角色信息以及其他必要信息.然后,您可以点击"加载"按钮并将其恢复.
或者是全国人大对话的情况.当我碰到Merchant#853时,他随机吐出3个不同的问候之一.
还有其他我能想到的,但它们实际上只是同一主题的变体.即使有这两个例子,在我看来也可以使用相同的机制,但那个机制是什么?
我已经做了多年的网络开发,所以我的脑海里会自动跳到"数据库!".数据库是解决任何问题的方法.我可以看到它在这里如何工作,但开销似乎很陡峭."这是我的6mb编译游戏......哦和68mb MySQL安装." 或者甚至更糟,因为我正在使用XNA,也许我需要找到一种捆绑SQL Server的方法.:)
我想也许是XML,但这对我来说也不合适.如果我想在XBox上运行它会如何工作?还是Zune?(这些对于我正在做的事情来说不是必需的,但必须有一个解决方案,将其考虑在内.)
谁知道秘密?或者还有一些想法?
谢谢Jeff
将MySQL表转储到Perl文件的最佳方法是什么?
我一直在用:
open( FILE, ">$filename" );
my $sth=$dbh->prepare("select * from table");
$sth->execute();
while ( my $row = $sth->fetchrow_arrayref ) {
print FILE join( "|", @$row ), "\n";
}
Run Code Online (Sandbox Code Playgroud) 与CPython等其他运行时相比,究竟是什么让JVM(特别是Sun的实现)运行缓慢?我的印象是,无论是否需要,它主要与一大堆图书馆的装载有关,但这似乎不需要花费10年的时间来修复.
想想看,JVM的启动时间与Windows上的CLR相比如何?Mono的CLR怎么样?
更新:我特别关注Unix中常见的小型实用程序的用例.Java现在适合这种风格吗?无论Java发生什么样的启动开销,它是否会为每个Java进程加起来,或者开销只是真正体现在第一个进程中?
依赖隐式默认值是不好的做法,例如:
class Node
{
int red;
int green;
int blue;
bool grayscale;
Node next;
}
Run Code Online (Sandbox Code Playgroud)
而不是明确地设置它们:
class Node
{
int red = 0;
int green = 0;
int blue = 0;
bool grayscale = false;
Node next = null;
}
Run Code Online (Sandbox Code Playgroud)