我试图在prolog中写一个程序,如果L1 = [1,2,3]和L2 = [4,5,6]则L3 = [1,4,2,5,3,6]
所以 shuffle([1,2,3],[4,5,6],[1,4,2,5,3,6])
到目前为止我有这个:
shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],_) :- shuffle(Xs,Ys,Z), shuffle(X,Y,Z).
Run Code Online (Sandbox Code Playgroud)
这是我编写prolog代码的第一次尝试,所以我仍然试图围绕语法,规则和一切.
我理解逻辑,我只是不确定如何实现它所以任何帮助将不胜感激!
谢谢!
编辑:我已经弄清楚了.如果有人感兴趣,这是解决方案:
shuffle([X],[Y],[X,Y]).
shuffle([X|Xs],[Y|Ys],[Z1,Z2|Zs]) :- shuffle([X],[Y],[Z1,Z2]),shuffle(Xs,Ys,Zs).
Run Code Online (Sandbox Code Playgroud) 我正在使用java和javax.swing编写一个简单的计算器程序
基本上,当您按下按钮时,程序应该获取该按钮的功能(数字或操作)并将其显示在textArea中.
计算器本身的整个逻辑并不重要.此外,还有一个清除菜单项,清除textArea中的所有文本.
但是,每按一次按钮,我都会收到以下错误:
计算器中的线程"AWT-EventQueue-0"java.lang.NullPointerException异常.CalculatorGUI.actionPerformed(CalculatorGUI.java:106)
当我按下清除菜单项时,我也遇到类似的错误,当我想要更改文本区域中的文本时,似乎java不喜欢它.
这是我的代码:( 第106行是在actionPerfomed
方法中,为了方便起见,我标记了它)
public class CalculatorGUI implements ActionListener
{
// The calculator for actually calculating!
// private RPNCalculator calculator;
// The main frame for the GUI
private JFrame frame;
// The menubar for the GUI
private JMenuBar menuBar;
// The textbox
private JTextArea textArea;
private JScrollPane scrollArea;
// Areas for numbers and operators
private JPanel numKeysPane;
private JPanel opKeysPane;
private String input;
final String[] numbers = { "1", …
Run Code Online (Sandbox Code Playgroud) 我想创建一个测试,如果列表中的任何 Object 的某个属性为true ,则结果为true.
通常我会这样做的方式是:
foreach (Object o in List)
{
if (o.property)
{
myBool = true;
break;
}
myBool = false;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否有更简洁的方法来完成同样的任务?也许类似于以下内容:
if (property of any obj in List)
myBool = true;
else
myBool = false;
Run Code Online (Sandbox Code Playgroud) 我正在编写一个 shell,我想使用execv()并通过$PATH
环境变量搜索正确的目录(是的,我知道我可以使用execvp()
并将文件名传递给它)。
我正在考虑做的是从 中获取一个字符串getenv("PATH")
,将其分解为单独的路径,然后尝试每个路径。但我想知道是否有更简单的方法来做到这一点?
我想问题是:如何execvp()
搜索正确的路径?
谢谢!
我正在编写汇编代码,提示用户输入一些小写字符,然后输出带有所有UPPER-CASE字符的相同字符串.我的想法是迭代从特定地址开始的字节,并从每个字节中减去20H(将小写字母变成大写字母),直到我到达具有特定值的字节.我对Assembly很缺乏经验,所以我不确定这种循环的语法是什么样的.
任何人都可以提供一些示例代码或指导我在哪里可以找到这种语法的示例?
任何帮助是极大的赞赏!
我正在尝试使用鉴别器来实现继承,如Mongoose API文档中所示.但是,我不断收到以下错误:
C:\ Code\project \node_modules\mongoose\lib\index.js:364 if(!(schema.options中的'pluralization'))schema.options.pluralization = thi
^
TypeError:不能使用'in'运算符来搜索Mongoose.model中未定义的'复数'(C:\ Code\project \node_modules\mongoose\lib\index.js:364:34)
这是导致上述错误的代码; 我尝试扩展mongoose Schema类来创建我的基础模式:
var util = require('util');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
function ResourceSchema() {
Schema.apply(this, arguments);
this.add({
title: String
});
}
util.inherits(ResourceSchema, Schema);
module.exports = mongoose.model('Resource', ResourceSchema);
Run Code Online (Sandbox Code Playgroud)
我也尝试在最后一行设置集合名称,但这没有帮助.
module.exports = mongoose.model('Resource', ResourceSchema, 'resources');
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Windows中使用调试工具来实现一个简单的程序.我想输入一串字符,然后检查内存以查看保存的字符.
这是我的代码:
mov bx,200
mov byte [bx],33 ;; Set maximum string length (32 + Ent)
mov ah, 0Ah
int 21h
Run Code Online (Sandbox Code Playgroud)
每次我组装代码并运行它时,它都允许我输入字符串,然后DEBUG自动退出.这是我第一次使用它,所以我不确定问题是什么.
任何帮助/提示将不胜感激.
谢谢!
我正在尝试在haskell中编写一个函数来递归地反转列表.我写了一个辅助函数,它接受原始列表和一个空列表,然后以LIFO模式将元素从第一个传递到另一个.
这就是我所拥有的:
myreverse :: [a] -> [a]
myreverse list = myflip list []
myflip :: [a] -> [a] -> [a]
myflip list1 newList
| null list1 = newList
| otherwise = myflip (tail list1) ((head list1) : newList)
Run Code Online (Sandbox Code Playgroud)
我知道有一个内置函数为我做,但要求是我只使用head,tail,elem和null(也没有模式匹配).所以我的问题是:有没有更好的解决方案,我只有一个函数,myreverse,只消耗一个列表?(当然,这符合上述要求)
谢谢!