小编Jef*_*ler的帖子

使谓词可逆

我是初学者; 我来自结构化编程背景,因为很明显:)

我正在构建一个涉及撤消数字的序言查询; 例如.reverse_num(123,X)结果X = 321.我提出了以下定义,但它仅在我提供数字作为第一个参数时才有效.

reverse_num(Num, Revnum) :-
  number_chars(Num, Atoms),
  reverse(Revatoms, Atoms),
  number_chars(Reversed, Revatoms),
  Reversed = Revnum.
Run Code Online (Sandbox Code Playgroud)

number_chars/2如果我做的话,谓词不喜欢未经证实的变量:( reverse_num(X,123)我期待X的是321).

我是否努力使reverse_num做一些不应该做的事情(应该理解它只能用数字作为第一个参数而变量作为第二个)?

或者是否有一种简单/直接的方式来处理变量作为第一个参数?

prolog

5
推荐指数
1
解决办法
886
查看次数

如何修复此 package.json 文件中的 NPM EJSONParse?

在准备自动脚本并安装一些软件包来自动执行任务后,我收到以下错误:

npm ERR! file C:\Users\windw\Desktop\bootstrap4\package.json
npm ERR! code EJSONPARSE
npm ERR! JSON.parse Failed to parse json
npm ERR! JSON.parse Unexpected string in JSON at position 455 while parsing '{
npm ERR! JSON.parse   "name": "confusion",
npm ERR! JSON.parse   "version": '
npm ERR! JSON.parse Failed to parse package.json data.
npm ERR! JSON.parse package.json must be actual JSON, not just JavaScript.
Run Code Online (Sandbox Code Playgroud)

下面是我的package.json文件

{
  "name": "confusion",
  "version": "1.0.0",
  "description": "This is a website for Ristorante Con Fusion",
  "main": "index.html",
  "scripts": {
    "start": …
Run Code Online (Sandbox Code Playgroud)

json node.js npm npm-scripts

5
推荐指数
1
解决办法
2万
查看次数

对路径“/dev/shm/AzureFunctions”的访问被拒绝。不允许操作。在 Mac 上运行函数时

当我尝试在 Azure 函数上使用调试时,出现以下错误:

[2021-10-09T15:50:50.996Z] Cannot create directory for shared memory
usage: /dev/shm/AzureFunctions 
[2021-10-09T15:50:50.996Z]
System.IO.FileSystem: Access to the path '/dev/shm/AzureFunctions' is
denied. Operation not permitted.
Run Code Online (Sandbox Code Playgroud)

我已经将 NodeJS 降级到 v13。

如何在 Mac 上解决此问题?

debugging azure-functions

5
推荐指数
0
解决办法
675
查看次数

如何修复 GMail SMTP 错误:“SMTP 服务器需要安全连接或客户端未经身份验证。”

下面是我正在使用的代码。请告知如何纠正此问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Net.Mail;

public partial class mailtest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void SendEmail(object sender, EventArgs e)
{
    lblmsg.Text = "";
    try
    {
        using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text))
        {
            mm.Subject = txtSubject.Text;
            mm.Body = txtBody.Text;
            //if (fuAttachment.HasFile)
            //{
            //    string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
            //    mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
            //}
            mm.IsBodyHtml = false;
            SmtpClient smtp = new …
Run Code Online (Sandbox Code Playgroud)

c# gmail smtp

4
推荐指数
2
解决办法
3万
查看次数

查找玩过这两款游戏的玩家

我想获得那些既下国际象棋又下跳棋的玩家的玩家ID。我有一张这样的表:

playerid   game         website
a1         chess        www.abc.com
a2         checkers     www.cba.com
a1         checkers     www.abc.com
b2         chess        www.abc.com
b1         chess        www.abc.com
a3         checkers     www.aaa.com
b2         checkers     www.abc.com
Run Code Online (Sandbox Code Playgroud)

期望的输出(应排除 a3 和 b1)

a1
b2
Run Code Online (Sandbox Code Playgroud)
select game, playerid, website
from player_db
where (game= 'chess' or game= 'checkers') and website='abc.com'
group by playerid ;
Run Code Online (Sandbox Code Playgroud)

这是我的 SQL,但它似乎并没有同时获得两种游戏——它选择国际象棋或西洋跳棋。

mysql sql group-by

4
推荐指数
1
解决办法
387
查看次数

在 git 别名中设置环境变量

foo如果我想在每次使用时将 的值设置为等于“bar” git status,我将如何继续执行此操作?我的第一个想法是设置一个别名,status="status && foo=bar"但是当我尝试这样做时echo $foo,我没有得到“bar”回声;但是,如果我手动将其全部输入为git status && foo=bazand then echo $foo,我的输出是“baz”。为什么我不能在别名中声明变量?

我观察到,如果我要切换顺序并且出于某种原因这样做,alias git="foo=bar && git"并且如果我尝试任何 git 命令并且echo foo它等于“bar”。

unix git bash

3
推荐指数
1
解决办法
1336
查看次数

C语言中的字符串和数组

#include <stdio.h>
int main() 
{ 
    printf("%d", "123456"[1]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期输出是123456,但实际输出是50,这是为什么呢?

c arrays string printf

3
推荐指数
1
解决办法
106
查看次数

C++ 中非指针数组的删除

当我有一个像这样的数组时:

int* test = new int[50];
for (int i = 0; i < 50; i++)
{
    test[i] = dist4(rng);
}
Run Code Online (Sandbox Code Playgroud)

(填充随机数用于测试)

我可以这样释放内存:

delete[] test;
Run Code Online (Sandbox Code Playgroud)

但是当我像这样声明数组时:

int test[50];
for (int i = 0; i < 50; i++)
{
    test[i] = dist4(rng);
}
Run Code Online (Sandbox Code Playgroud)

我无法使用delete或delete[]释放内存。

这里释放内存的正确方法是什么?

“dist4”函数只是一个随机数生成器:

random_device dev;
mt19937 rng(dev());
uniform_int_distribution<mt19937::result_type> dist4(1,4); // distribution in range [1, 4]
Run Code Online (Sandbox Code Playgroud)

c++ arrays delete-operator

3
推荐指数
1
解决办法
245
查看次数

“使用版本”下的“v1.2.3”和“qv(1.2.3)”有什么区别?

尝试将版本号与多个点进行比较,我想知道该怎么做:

Perl 有一个version模块似乎可以完成这项工作,但我想知道:

  DB<1> use version

  DB<2>  x '1.2.3' > '1.2.29'
0  ''
  DB<3>  x '1.2.3' >= '1.2.29'
0  1
  DB<4>  x '1.2.3' cmp '1.2.29'
0  1
  DB<5>  x '1.2.3' cmp '1.2.29'
0  1
  DB<6> x qv(1.2.3)
0  v1.2.3
  DB<7> x qv(1.2.3) > qv(1.2.29)
0  ''
  DB<8> x qv(1.2.3) < qv(1.2.29)
0  1
  DB<9> x '1.2.3' == '1.2.29'
0  1
  DB<10> x v1.2.3
0  "\cA\cB\cC"
  DB<11> print v1.2.3

  DB<12> print qv(1.2.3)
v1.2.3
Run Code Online (Sandbox Code Playgroud)

Soqv(1.2.3)被转换为v1.2.3,但是当我打印时v1.2.3 …

perl version

3
推荐指数
1
解决办法
97
查看次数

子类的构造函数中不能抛出异常

我创建了 3 个类:品牌类 (Marca)、商业品牌类 (MarcaComercial)(品牌类的子类)和异常类 (ExMarcaInvalida)(如果品牌构造函数中启动的属性之一为 null)。我想在子类构造函数中捕获此异常并声明它,如果捕获此异常则使用 setter 方法。但是,我不能这样做,因为除了第一行之外,我无法在任何地方启动超类的值。有没有办法捕获异常并做我想做的事情?保留下面所有 3 个类构造函数。

public Marca(String nome, String produtor, String regiao) 
        throws ExMarcaInvalida {
    this.nome = nome;
    this.produtor = produtor;
    this.regiao = regiao;
    if(nome.isEmpty() || nome.isBlank()){
        throw new ExMarcaInvalida("Nome invalido");
    }
}
Run Code Online (Sandbox Code Playgroud)
public MarcaComercial(String rotulo, String email, 
    String num, String nome,String produtor, String regiao) 
    throws ExMarcaInvalida {
    try{
        super(nome, produtor, regiao); //ISSUE HERE
        this.rotulo = rotulo;
        this.email = email;
        this.num = num;
    }
    catch(ExMarcaInvalida e){
        setRotulo("Marca Branca");
        throw new ExMarcaInvalida("Marca Invalida");
    }
} …
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
86
查看次数

学习 Kotlin 问题。无法理解修饰符参数

我有生以来第一次学习编程。我花了大约 2 周的时间通过免费课程学习 Kotlin,并专门花了一周的时间在 Android Studio 中学习 Jetpack Compose。我已经被一道练习题困住了两天,但我在互联网上遇到的每个答案都假设我知道的比我知道的还要多。这种做法包括制作一个像CorrectQuadrant这样的象限,但除非我做出对我来说没有意义的更改,否则我只能像这样In CorrectQuadrant那样得到它。

所以问题是我不太理解修饰符参数,所以尝试又尝试我终于下载了解决方案代码并发现了错误,但我无法理解为什么这是一个错误。在下面的代码中,在私有函数“ComposeInfoCard”中,您可以看到修饰符 Column 参数被 (=====) 包围。如果我用小写字母写该参数(修饰符=修饰符),我会得到正确的象限。如果我像这样写(modifier = Modifier),这就是我认为它是正确的,私有函数中的修饰符参数说“参数修饰符从未使用过”,但这不是真的,因为我使用了它四次用于 ComposeQuadrant 函数中的权重修改器。

有人可以解释为什么它需要小写,并且如果您不介意的话,请解释一下对象修饰符,就像我对此完全陌生一样?

@Composable
fun ComposeQuadrant(){
    Column (modifier = Modifier.fillMaxWidth()){
        Row (modifier = Modifier.weight(1f)){
            ComposeInfoCard(
                title = stringResource(R.string.title1),
                description = stringResource(R.string.description1),
                backgroundColor = Color(0xFFEADDFF),
                modifier = Modifier.weight(1f)
            )
            ComposeInfoCard(
                title = stringResource(R.string.title2),
                description = stringResource(R.string.description2),
                backgroundColor = Color(0xFFD0BCFF),
                modifier = Modifier.weight(1f)
            )

        }
        Row (Modifier.weight(1f)){
            ComposeInfoCard(
                title = stringResource(R.string.title3),
                description = stringResource(R.string.description3),
                backgroundColor = Color(0xFFB69DF8),
                modifier = Modifier.weight(1f)
            )
            ComposeInfoCard( …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose

2
推荐指数
1
解决办法
294
查看次数