是否有一种简单的方法在prolog中进行查询只返回一次结果?
例如我正在尝试这样的事情:
deadly(Xn) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xn)), safe(Xp).
deadly(Xp) :- scary(X), Xn is X - 1, Xp is X + 1, not(safe(Xp)), safe(Xn).
deadly(X).
Run Code Online (Sandbox Code Playgroud)
并得到
X = 5
X = 5
X = 5
X = 5
....
Run Code Online (Sandbox Code Playgroud)
不是对我有用.
在没有考虑太多的情况下,在我看来,一大堆Prolog的功能可以作为关系演算(又称SQL)来实现.
有没有人听说过任何自动将Prolog转换为SQL的工具?
现在,这可能是一个愚蠢的问题,但有时术语框架和API可以互换使用.我认为它的方式是框架是一个更大的更通用的东西,包含许多API,可用于各种编程任务(例如,.NET Framework.)API更小,更专业(例如, Facebook API.)有人想分享他们对此事的见解吗?
例如,微软称.NET为框架,而Sun称其为平台......因此,如何调用"图书馆集合"也是一个商业/营销决策?
在我的控制器中,我有两个叫做"朋友"的动作.执行的那个取决于它是否是"获取"而不是"帖子".
所以我的代码片段看起来像这样:
// Get:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Friends()
{
// do some stuff
return View();
}
// Post:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Friends()
{
// do some stuff
return View();
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会编译,因为我有两个具有相同签名的方法(Friends).我该怎么做呢?我是否只需要创建一个操作但区分其中的"获取"和"发布"?如果是这样,我该怎么做?
我需要将图像从PHP URL保存到我的PC.假设我有一个页面,http://example.com/image.php
拿着一个"花"图像,没有别的.如何使用新名称(使用PHP)从URL保存此图像?
我需要将位域结构从little-endian转换为big-endia架构.如果我只是交换结构元素,那么在字节边界中会出现问题的最佳方法是什么?
Ex结构是:
struct {
unsigned int b1:1;
unsigned int b2:8;
unsigned int b3:7;
unsigned int b4:8;
unsigned int b5:7;
unsigned int b6:1;
};
Run Code Online (Sandbox Code Playgroud) 我有两个运行的活动:mainActivity和childActivity.每当用户点击的按钮mainActivity,该childActivity启动.我想要做的是:
当活动活动是childActivity并且用户单击主页按钮然后重新启动应用程序时,我希望看到childActivity 而不是 启动的mainActivity.
我有一些建议实际上解决了.我试图操纵onStart,onRestart,onResume,onStop,onDestroy事件.但是,他们没有完全解决问题.应该有一个聪明的方法.谢谢.
编辑:
谢谢你的回答,Soonil.您说的是从最近的活动窗口调用活动时发生的情况.(长按主页按钮时窗口打开)但是; 从主屏幕打开时不会发生这种情况.(比如从头开始)我不认为我的代码有一个特定的问题来产生这个错误.因为,我创建了一个测试项目并在发送问题之前单独尝试并面临同样的问题.无论如何,这是测试代码:
public class MainActivity extends Activity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("MainActivity");
((Button) findViewById(R.id.btnChildActivity)).setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(new Intent(this, ChildActivity.class));
}
}
public class ChildActivity extends Activity {
/** Called when the activity …
Run Code Online (Sandbox Code Playgroud) ActiveRecord validates_uniqueness_of
很容易受到竞争条件的影响.要真正确保唯一性,需要额外的保护措施.ActiveRecord RDocs的一个建议是在数据库上创建一个唯一索引,例如通过包含在您的迁移中:
add_index :recipes, :name, :unique => true
Run Code Online (Sandbox Code Playgroud)
这将确保在数据库级别名称是唯一的.但这种方法的一个缺点是,ActiveRecord::StatementInvalid
尝试保存副本时返回的异常不是很有用.在捕获此异常时,无法确定错误是由重复记录生成的,而不仅仅是由损坏的SQL生成的.
正如RDocs所建议的那样,一种解决方案是解析异常附带的消息,并尝试检测诸如"重复"或"唯一"之类的字,但这很麻烦,而且消息是特定于数据库后端的.对于SqlLite3,我的理解是该消息是完全通用的,并且不能以这种方式解析.
鉴于这是ActiveRecord用户的一个基本问题,很高兴知道是否有任何标准方法来处理这些异常.我将在下面提出我的建议; 请评论或提供替代方案; 谢谢!
我们正在编写一个日志库,它将自己保存在.hpp文件中.我们想包括<tr1/unordered_map>
(如果编译器支持TR1)或其他标准<map>
.如果tr1可用,是否有标准的编译时检查方法?
我认为与" __cplusplus
"定义符号存在的方式相同,可能已经定义了" __cxx__tr1
"或类似的东西.我在TR1的草稿中没有看到,所以我认为它不存在,但我想先问一下以防万一.
需要注意的是,如果这些定义不存在,那么将它们包含在提案本身中并不是一个坏主意.
frameworks ×2
prolog ×2
activerecord ×1
android ×1
api ×1
asp.net-mvc ×1
c ×1
c++ ×1
controller ×1
database ×1
dictionary ×1
endianness ×1
exception ×1
get ×1
image ×1
indexing ×1
php ×1
post ×1
sql ×1
tr1 ×1