我必须编写打印表达式真值表的程序.所以,我写了以下函数:
bool(true).
bool(fail).
tableBody(A,B,E) :-
bool(A),
bool(B) ,
write(A) ,
write(' '),
write(B),
write(' '),
write(E),nl, fail.
Run Code Online (Sandbox Code Playgroud)
我的问题是E(包含A和B的表达式)没有被评估,而是按原样打印.例如:
296 ?- table(A,B,and(A,B)).
A B expr(A,B)
true true and(true, true)
true fail and(true, fail)
fail true and(fail, true)
fail fail and(fail, fail)
false.
Run Code Online (Sandbox Code Playgroud)
我有兴趣编写and(true, true)(" and(X,Y)"是我之前定义的仿函数)的评估值,而不是当前显示的值.我想过编写一个eval仿函数,但它不会产生同样的效果吗?我怎么解决这个问题?
我正在使用SWI-Prolog 5.8.谢谢.
作为序言,我已经使用C#几个月,但我完全不熟悉部署和汇编等概念.我的问题很多而且多种多样,虽然我疯狂地谷歌搜索并阅读它们但无济于事(我目前在我面前有Pro C#2008和.NET 3.5平台).
我们有这个过程,它由三个组件组成:引擎,过滤器和过程逻辑.我们非常喜欢这个过程,我们希望它能在其他项目中重复使用.所以现在我开始探索超越一个解决方案,一个项目的空间.
这听起来不错吗?一个巨大的解决方
引擎是所有进程的共享代码,所以我假设它可以是一个共享程序集?如果共享程序集与使用它的项目在同一解决方案中,如果它应该在GAC中,它将如何被消耗?我已经阅读了一些关于post build事件的内容.这是否意味着必须在每次构建时重新部署engine.dll?
此外,我们将过滤器与进程分离的原因(只有一个进程使用它)是因为我们可以独立于进程部署过滤器,以便不需要更新进程可执行文件.不管这是不是最好的做法,让我们来看看吧.这可能吗?我已经读过程序集链接到其他程序集的特定版本,所以如果我只更新DLL,它实际上被认为是篡改.如何在不更改EXE的情况下更新DLL?这是出版商政策的用途吗?
顺便说一句,谷歌能够或亚马逊能够拥有这些东西吗?我应该寻找什么?我看到很多关于C#和.NET的书籍,但没有关于部署,构建或测试或与语言本身无关的事情.
当我有类似的东西时,我想到了这个问题
enum Folders {FA, FB, FC};
Run Code Online (Sandbox Code Playgroud)
并希望为每个文件夹创建一个容器数组:
ContainerClass*m_containers[3];
....
m_containers[FA] = ...; // etc.
Run Code Online (Sandbox Code Playgroud)
(使用的地图是更优雅的使用方法:std::map<Folders, ContainerClass*> m_containers;)
但回到我原来的问题:如果我不想对数组大小进行硬编码,有什么方法可以找出文件夹中有多少项?(不依赖于例如FC列表中的最后一项,ContainerClass*m_containers[FC+1]如果我没有弄错的话就会允许这样的事情.)
在我正在研究的项目中,我正在构建我的代码,如下所示
MyLib = {
AField:0,
ASubNamespace:{
AnotherField:"value",
AClass:function(param) {
this.classField = param;
this.classFunction = function(){
// stuff
}
}
},
AnotherClass:function(param) {
this.classField = param;
this.classFunction = function(){
// stuff
}
}
}
Run Code Online (Sandbox Code Playgroud)
等等做这样的事情:
var anInstance = new MyLib.ASubNamespace.AClass("A parameter.");
Run Code Online (Sandbox Code Playgroud)
这是实现命名空间的正确方法吗?是否有性能命中,如果有,有多激烈?当我嵌套更深时,性能降级是否堆叠?使用此结构时是否还有其他问题需要注意?
我关心每一点性能,因为它是一个实时图形库,所以我非常重视任何开销.
StyleCop告诉我,我不应该为成员变量添加前缀m_.这是c#编码风格的官方线吗?我猜这是来自MS.有人对这个有了解吗??
默认情况下,StyleCop不允许使用下划线,m_等标记本地类字段,而使用'this'.字首.使用'this'的好处.它同样适用于所有元素类型,包括方法,属性等,而不仅仅是字段,使得对类成员的所有调用都可以立即识别,无论使用哪个编辑器来查看代码.另一个优点是它在实例成员和静态成员之间创建了一个快速,可识别的区别,它不会被加上前缀.
好吧,这里有一些奇怪的东西让我难倒了大约45分钟......
我有一个自定义.tpl.php文件,我用它来主题节点视图.我有很多PHP已经在这个模板中运行,但今天我有几个我想要移动的CCK字段.
但是,当我添加我的代码片段时,我得到"解析错误:语法错误,意外'['"
<?php print $node->field-account-status[0]['value']; ?>
Run Code Online (Sandbox Code Playgroud)
问题是,这是一个相当常见的片段,应该起作用.这里使用的例子是http://groups.drupal.org/node/25064
这是显示PHP上面和下面的相同片段,两者都工作..为什么这个片段抛出这个错误???
<h2>Service Requests for <?php print $node->title; ?> </h2>
//lines above and below this one are working PHP
<?php print $node->field-account-status[0]['value']; ?>
<?php
$i = 0;
print '<table class="views-account-sr">';
Run Code Online (Sandbox Code Playgroud) 树的每个节点可能具有任意数量的子节点.我需要一种方法来构造和遍历这些树,但是使用一维向量或列表来实现它们.
当我访问使用asp.net构建的站点时,偶尔(总是经过很长一段时间的闲置时间,例如一夜之间) - 加载页面大约需要15秒(在我看到任何进展之前15秒,然后是页面快速出现).
该网站上的其他页面,或刷新,像往常一样快 - 它们在其他机器上也很快,只有第一个似乎采取'命中'.
页面跟踪从未通过任何事情(整个周期只是一小部分)
所以我的问题是我应该在哪里看?也许IIS?或者它仍然是我的asp.net应用程序,我只是在寻找错误的地方(痕迹)寻找线索?
因为我对IIS服务器没有太多控制权,所以我可以通过asp.net查看的内容会更有帮助,然后再去询问特定的管理员.
欢呼声:D
我有一个允许管理员上传文件的应用程序.这些文件存储在Web根目录之外,因此无法通过URL访问它们.在过去,我们一直使用类似于下面的代码,然后将文件提供给授权用户.是否有更好或更通用的方式来指定类型?当管理员被允许上传许多不同类型的文件时,这尤其重要.
<cfheader name="content-disposition" value="filename=#queryname.filename#">
<cfcontent type="application/unknown" file="#application.pathToDataDirectory#/#queryname.filename#">
Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
algorithm ×1
asp.net ×1
c++ ×1
coding-style ×1
coldfusion ×1
count ×1
download ×1
enumeration ×1
iis ×1
java ×1
javascript ×1
mime-types ×1
namespaces ×1
performance ×1
php ×1
prolog ×1
structure ×1
stylecop ×1
truthtable ×1