我目前正在尝试学习一些基本的序言.在我学习的过程中,我想远离if else语句来真正理解语言.我这样做有困难.我有一个看起来像这样的简单函数:
if a > b then 1
else if
a == b then c
else
-1;;
Run Code Online (Sandbox Code Playgroud)
这只是一个非常简单的逻辑,我想转换成prolog.
所以在这里我非常困惑.我想首先检查一个> b,如果是这样输出1.我只是这样做:
sample(A,B,C,O):-
A > B, 1,
A < B, -1,
0.
Run Code Online (Sandbox Code Playgroud)
这就是我提出的.o作为输出,但我不明白如何使输出1.有什么想法可以帮我更好地理解这个吗?
在做了一些之后我想出了这个,但它似乎不正确:
Greaterthan(A,B,1.0).
Lessthan(A,B,-1.0).
Equal(A,B,C).
Sample(A,B,C,What):-
Greaterthan(A,B,1.0),
Lessthan(A,B,-1.0),
Equal(A,B,C).
Run Code Online (Sandbox Code Playgroud)
我走向正确的轨道吗?
我目前正在与prolog合作,并希望以证书方式将两个列表相乘.例如:
[1,2,3] and [4,5,6] are my two lists.
Run Code Online (Sandbox Code Playgroud)
我想要执行以下操作:
(1*4)+(2*5)+(3*6) = 32
Run Code Online (Sandbox Code Playgroud)
这样每个列表的第一个元素相互相乘,然后加上第二个元素相乘等.
这有可能进入Prolog吗?
我知道在其他语言中你可以做一个递归函数,带有列表的头部和尾部(其余的条目).这允许简单的乘法,但我不认为这是可能的prolog?
我目前正在尝试使用随机字符串生成器来生成字符串.它看起来像这样:
char *randstring(int length) {
static char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.-#'?!";
char *randomString = NULL;
int n = 0;
if (length) {
randomString = malloc(sizeof(char) * (length +1));
if (randomString) {
for (n = 0;n < length;n++) {
int key = rand() % (int)(sizeof(charset) -1);
randomString[n] = charset[key];
}
randomString[length] = '\0';
}
}
return randomString;
}
Run Code Online (Sandbox Code Playgroud)
我想这样称呼它:
srand(time(NULL));
int r = rand()%1000;
char *string[1000];
&string = randomstring(r);
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到以下错误:
error: invalid lvalue in assignment.
Run Code Online (Sandbox Code Playgroud)
我看过网上但我无法弄清楚为什么这不起作用.有什么建议?我假设它与指针有关.
我目前正在使用php回应我的网页的json响应,并在某些情况下遇到问题.我无法弄清楚是什么导致了这一点.我使用的sql语句如下所示:
"SELECT *
FROM table
WHERE id = $id
LIMIT 20 OFFSET $offset"
Run Code Online (Sandbox Code Playgroud)
唯一改变的是$offset
用户切换页面的时间.我有8页数据,第7页和第8页都没有返回数据,而其他所有数据都没有.当我将此sql语句复制到我的数据库中进行测试时,它会正确检索数据.
这里我是如何回应json的:
while ($row = mysqli_fetch_array($fetch, MYSQLI_ASSOC)) {
$row_array['id'] = $row['id'];
$row_array['title'] = $row['title'];
$row_array['description'] = $row['description'];
array_push($return_arr,$row_array);
//echo json_encode($return_arr); <-- this returns JSON
}
echo json_encode($return_arr);
Run Code Online (Sandbox Code Playgroud)
在除第7页和第8页之外的所有页面上,它返回正确的JSON,但由于某种原因,在这两个页面上,echo不执行任何操作.如果我将json放在我注释掉的循环中,它将为第7页和第8页返回正确的json,这是奇怪的.我在验证器中检查了json,它是有效的json.有没有办法检查错误或调试此错误?
我目前正在使用vhdl并且遇到7段显示问题.我在网上找到了这个代码,但我很难理解它的确切含义.有些人可以通过以下代码帮助我了解正在发生的事情:
ARCHITECTURE Structure OF multi IS
SIGNAL C : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
LEDR <= SW;
C(2 DOWNTO 0) <= SW(2 DOWNTO 0);
HEX0(0) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND C(0)) OR
(NOT(C(2)) AND C(1) AND C(0)) );
HEX0(1) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND NOT(C(0))) OR
(NOT(C(2)) AND C(1) AND C(0)) );
HEX0(2) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND NOT(C(0))) OR
(NOT(C(2)) AND C(1) AND C(0)) );
HEX0(3) <= NOT( (NOT(C(2)) AND NOT(C(1)) AND C(0)) OR
(NOT(C(2)) AND C(1) …
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试将Perl中的电子邮件写入其中包含撇号并且无法弄清楚如何发送它的用户.这是该行的样子:
$to = "o'connell\@website.com";
Run Code Online (Sandbox Code Playgroud)
这是我用来发送电子邮件的行:
system("echo $message | mailx -s $subject $to ");
Run Code Online (Sandbox Code Playgroud)
这是一个电子邮件的示例o'connell@website.com
.由于撇号,它不会发送它.我尝试过以下内容并没有奏效.我mailx
用来发送电子邮件
$to = "o'connell\@website.com";
$to = "o''connell\@website.com";
$to = "o"'"connell\@website.com";
Run Code Online (Sandbox Code Playgroud)
这些都没有奏效.我可以发送电子邮件给那些在他们的电子邮件中没有它的人.有什么建议?
我目前正在开发一个表,可以扩展单击行的详细信息.单击一行后,我希望隐藏<tr>
在其下方显示.我得到了正确的工作,但当我再次尝试隐藏它时,下面会出现一个我不想发生的白框.这是我的例子的小提琴:https://jsfiddle.net/pt0skyyb/
HTML:
<table class="table">
<tr>
<th>Details</th>
<th>First</th>
<th>Second</th>
</tr>
<tr>
<td>+</td>
<td>First</td>
<td>Second</td>
</tr>
<tr class="child">
<td colspan="3">
<table class="child-table">
<tbody>
<tr>
<th>First</th>
<th>Second</th>
<th>Third</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td>+</td>
<td>Third</td>
<td>Fourth</td>
</tr>
<tr class="child">
<td colspan="3">
<table class="child-table">
<tbody>
<tr>
<th>First</th>
<th>Second</th>
<th>Third</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
JS:
$(function() {
$("td[colspan=3]").find("table").hide();
$("table").click(function(event) {
event.stopPropagation();
var $target = $(event.target);
var $child …
Run Code Online (Sandbox Code Playgroud) 我目前正在Perl中创建一个如下所示的类:
sub new{
$class = shift;
$self = {
#Member Variables
server => shift,
type => shift,
domains => shift
};
bless $self, $class;
return $self;
}
Run Code Online (Sandbox Code Playgroud)
我希望域是一个包含多个变量的数组.使用shift时,如何区分数组和正常变量?我试图像这样输入数组:
my $var = new class("server",1,(1,2,3));
my $var = new class("server",1,[1,2,3]);
Run Code Online (Sandbox Code Playgroud)
当尝试迭代数组时,这些都不起作用:
for $i ($self->{domains}){
print "$i\n";
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用递归方法来解决硬币找零问题。问题是这样的:
系统会为您提供不同面额的硬币和总金额。编写一个函数来计算组成该数量的组合的数量。
系统会为您提供一定数量的硬币。
这是我到目前为止的内容:
private static int[] coins = {1,2,5};
public static void main(String[] args) {
System.out.println(count(13));
}
public static int count(int n)
{
// If n is 0 then there is 1 solution
if (n == 0)
return 1;
// If n is less than 0 then no solution exists
if (n < 0)
return 0;
return count(n - coins[0]) + count(n - coins[1]) + count(n - coins[2]);
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我什么也无法找到正确的组合。我认为问题在于退货,但我不知道为什么。在这里,我从金额中减去硬币,然后每次将它们加在一起。当它为0时,返回1。