标签: logic

空列表中"全部"和"任何"结果的原因

在Python,内置的功能allany回报True,并False分别对空iterables.我意识到,如果是相反的方式,仍然可以问这个问题.但我想知道为什么选择这种特定的行为.它是任意的,即.它可能就像其他方式一样容易,还是有潜在的原因?

(我问的原因仅仅是因为我永远不会记得哪个是哪个,如果我知道它背后的理由那么我可能.还有,好奇心.)

python logic

28
推荐指数
4
解决办法
2374
查看次数

Visual Studio项目/项模板参数逻辑

由于我只看了几个关于这个主题的帖子,但没有深入解释Visual Studio模板中参数的逻辑,我想我会在这里发布.

MSDN文章之后,您可以向模板添加自定义参数,如果您想要更改它们,可以使用向导进行更改.

在模板的任何文件中(模板文件本身除外),您可以根据参数添加逻辑.逻辑只使用三个关键字.$ if $(%expression%),$ else $和$ endif $.所以说我在模板文件中有以下内容:

public string foo( string a )
{
    return string.Format( @"foo( {0} );", a );
}
Run Code Online (Sandbox Code Playgroud)

我们想要添加一些逻辑,以确定我们是否要检查"a"是空还是空

public string foo( string a )
{
$if$ ( $shouldCheckForNullOrEmpty$ == true )
    if ( !string.IsNullOrEmpty( a ) )
$endif$

    return string.Format( @"foo( {0} );", a );
}
Run Code Online (Sandbox Code Playgroud)

当然,您可能希望为if语句添加大括号,因此您可能需要多个逻辑块.

所以这不是太糟糕,但这有一些技巧.字符串匹配的$ if $检查,即shouldCheckForNullOrEmpty必须等于"true".它也被写成$ if $($ shouldCheckForNullOrEmpty $ =="true"),但这不起作用.

具有单个表达式的单个if语句非常简单,所以现在对于更复杂的示例:

public string foo( string a )
{
$if$ ( $parameterCheckMode$ …
Run Code Online (Sandbox Code Playgroud)

logic project-template visual-studio

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

使用有限域声明下降/上升坐标的谓词

我想编写一个谓词,descendo,它声明第一个给定坐标[y,x]下降到第二个给定坐标(想象左上角有[0,0]的板).

Prolog中一个非常简单的实现可能如下所示:

descending(B, A) :-
  B = [B1,B2],
  A = [A1,A2],
  B1 is A1 + 1,
  B2 is A2 + 1.
Run Code Online (Sandbox Code Playgroud)

我没有在core.logic中实现这一点.我已经尝试了很多不同的东西(==/= fd/conso/appendo和+ fd/+).我试过的一件事:

(defn descendo
  [b a]
  (l/fresh [b1 b2 a1 a2]
           (l/== b [b1 b2])
           (l/== a [a1 a2])
           (l/+fd b1 1 a1)
           (l/+fd b2 1 a2)))
Run Code Online (Sandbox Code Playgroud)

大多数人在运行它们时只返回任何内容:

(l/run* [q]
  (l/fresh [a]
    (l/infd a (l/domain [0 0] [1 0] [0 1] [1 1]))
    (descendo a [0 0])
    (l/== q a)))

=> () ; expected output: ([1 1])
Run Code Online (Sandbox Code Playgroud)

我觉得在使用core.logic时,在Prolog中思考太多是不好的...任何暗示都赞赏.提前致谢. …

logic clojure prolog clojure-core.logic

28
推荐指数
1
解决办法
776
查看次数

&&运算符的行为类似于|| 操作者

我是初学者,我一直在尝试运行一个程序,打印从1到N(用户输入)的所有数字,除了那些可以同时被3和7整除的数字.然而,我的代码所做的是它打印从1到N的数字,除了那些可被3或7整除的数字.我检查了一段时间,我不知道它为什么这样做.请向我解释我哪里出错了.

static void Main(string[] args)
{
    int n = 0;
    int a = 0;
    n = Convert.ToInt32(Console.ReadLine());
    while (a <= n)
    {
        a++;
        if (a % 3 != 0 && a % 7 != 0)
        {
            Console.WriteLine(a);
        }
    }
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

当我扭转if语句的标牌==&&运营工作正常,但如果标志是!=它只是就像一个||运营商,这样混淆了我,甚至更多.问题最有可能出现在这种情况下,但我看不出它有什么问题.

.net c# logic

28
推荐指数
6
解决办法
4784
查看次数

我无法理解这个javascript函数是如何工作的

我正在阅读bind函数定义,但我无法100%理解编写的代码:

if (!Function.prototype.bind) {
    Function.prototype.bind = function(oThis) {
        if (typeof this !== "function") {
            // closest thing possible to the ECMAScript 5 internal IsCallable function
            throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
        }

        var aArgs = Array.prototype.slice.call(arguments, 1),
            fToBind = this,
            fNOP = function() {},
            fBound = function() {
                return fToBind.apply(this instanceof fNOP
                                       ? this 
                                       : oThis || window,
                                     aArgs.concat(Array.prototype.slice.call(arguments)));
            };

        fNOP.prototype = this.prototype;
        fBound.prototype = new fNOP();

        return fBound; …
Run Code Online (Sandbox Code Playgroud)

javascript logic

27
推荐指数
1
解决办法
1122
查看次数

Haskell中有27种不同的Bool到Bool值

有人可以解释为什么有27不同的Bool->Bool值,11可以在Haskell中定义吗?

logic haskell

26
推荐指数
1
解决办法
1786
查看次数

逻辑编程的最佳用途是什么?

逻辑编程我指的是声明性编程语言的子范例.不要混淆这个问题和"如果 - 那么其他什么问题可以解决?"

像Prolog这样的语言非常吸引人,为了学习而值得学习,但我不得不想知道哪种类型的现实问题最能用这种语言表达和解决.还有更好的语言吗?在更流行的编程语言中,逻辑编程是否存在另一个名称?这个答案的愤世嫉俗版本是Python Paradox的一个变种吗?

logic functional-programming prolog logic-programming

25
推荐指数
6
解决办法
1万
查看次数

Coq中的"true = false"是什么意思?

[我不确定这是否适合堆栈溢出,但此处还有许多其他Coq问题,所以也许有人可以提供帮助.]

我正在从http://www.cis.upenn.edu/~bcpierce/sf/Basics.html#lab28处理以下内容(正好在Case的介绍下面).请注意,我是一个完全的初学者,我在家工作 - 我不是学生.

Theorem andb_true_elim1 : forall b c : bool,
  andb b c = true -> b = true.
Proof.
  intros b c H.
  destruct b.
  Case "b = true".
    reflexivity.
  Case "b = false".
    rewrite <- H. reflexivity.
Qed.
Run Code Online (Sandbox Code Playgroud)

我正在看重写的内容:

  Case := "b = false" : String.string
  c : bool
  H : andb false c = true
  ============================
   false = true
Run Code Online (Sandbox Code Playgroud)

然后rewrite <- H.应用:

  Case := "b = false" : String.string
  c : …
Run Code Online (Sandbox Code Playgroud)

logic coq

25
推荐指数
2
解决办法
5280
查看次数

c#中的多变量开关语句

我想使用一个switch语句,它接受几个变量,如下所示:

switch (intVal1, strVal2, boolVal3)
{
   case 1, "hello", false:
      break;
   case 2, "world", false:
      break;
   case 2, "hello", false:

   etc ....
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中做这样的事情?(出于显而易见的原因,我不想使用嵌套的switch语句).

.net c# logic switch-statement switch-expression

25
推荐指数
6
解决办法
3万
查看次数

如果你不是浮动的话,会发生什么?

我假设这只返回一个int.还有什么事情我应该知道吗?C/C++的差异?

float a = 2.5;
!a; // What does this return? Int? Float?
Run Code Online (Sandbox Code Playgroud)

c c++ floating-point logic logical-operators

25
推荐指数
2
解决办法
3811
查看次数