标签: boolean-expression

在Ruby中评估像Array#join这样的许多布尔表达式

在Ruby中,您可以使用Array#join将多个字符串简单地连接在一起,并使用可选的分隔符.

[ "a", "b", "c" ].join        #=> "abc"
[ "a", "b", "c" ].join("-")   #=> "a-b-c"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个很好的语法糖与一堆布尔表达式做类似的事情.例如,我需要&&一堆表达式.但是,将使用哪些表达式由用户输入确定.所以不要做一堆

cumulative_value &&= expression[:a] if user[:input][:a]
Run Code Online (Sandbox Code Playgroud)

我想先根据输入收集所有表达式,然后将&&它们一起全部收集起来.就像是:

be1 = x > y
be2 = Proc.new {|string, regex| string =~ regex}
be3 = z < 5 && my_object.is_valid?
[be1,be2.call("abc",/*bc/),be3].eval_join(&&)
Run Code Online (Sandbox Code Playgroud)

默认情况下Ruby中是否有这样的设备?如果可能的话,我只想要一些合成糖来使代码更清洁.

ruby syntactic-sugar boolean-expression

14
推荐指数
2
解决办法
6801
查看次数

简化布尔表达式算法

有人知道一个简化布尔表达式的算法吗?

我记得布尔代数和Karnaught地图,但这适用于EVERITHING为布尔值的数字硬件.我想要考虑一些子表达式不是布尔值的东西.

例如:

a == 1 && a == 3
Run Code Online (Sandbox Code Playgroud)

这可以转换为纯布尔表达式:

a1 && a3 
Run Code Online (Sandbox Code Playgroud)

但这是表达是不可简化的,而对于算术的一点点知识,everibody可以确定表达式只是:

false
Run Code Online (Sandbox Code Playgroud)

有些人知道一些链接?

algorithm boolean-logic boolean boolean-expression

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

我如何表达两个值彼此不相等?

是否有类似于equals()表达"不等于"的方法?

我想要完成的一个例子如下:

if (secondaryPassword.equals(initialPassword)) 
{
    JOptionPane.showMessageDialog(null, "You've successfully completed the program.");
} else {
    secondaryPassword = JOptionPane.showInputDialog(null, "Your passwords do not match. Please enter you password again."); 
}
Run Code Online (Sandbox Code Playgroud)

我试图找到一些不需要我使用的东西if ( a != c).

java if-statement equals boolean-expression

12
推荐指数
3
解决办法
14万
查看次数

为什么名为minterms的产品名为minterms?

他们有理由这样做吗?我的意思是,在minterms的总和中,你用输出1寻找条件; 我不明白为什么他们称之为"minterms".为什么不是maxterms因为1大于0?

这背后有什么理由我不知道吗?或者我应该接受它而不问为什么?

logic boolean-logic boolean boolean-expression boolean-operations

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

coq Set或Type如何成为命题

我正在阅读关于Coq的教程.它构造一个bool类型如下:

Coq < Inductive bool :  Set := true | false.
bool is defined
bool_rect is defined
bool_ind is defined
bool_rec is defined
Run Code Online (Sandbox Code Playgroud)

然后它显示了这些东西正在使用"检查".

Coq < Check bool_ind.
bool_ind
     : forall P : bool -> Prop, P true -> P false -> forall b : bool, P b

Coq < Check bool_rec.
bool_rec
     : forall P : bool -> Set, P true -> P false -> forall b : bool, P b

Coq < Check bool_rect.
bool_rect
     : …
Run Code Online (Sandbox Code Playgroud)

types set boolean-expression coq first-order-logic

12
推荐指数
1
解决办法
1524
查看次数

Python中的"布尔"操作(即:和/或运算符)

此方法搜索第一组单词字符(即:)[a-zA-Z0-9_],返回第一个匹配的组或None出现故障.

def test(str):
    m = re.search(r'(\w+)', str)
    if m:
        return m.group(1)
    return None
Run Code Online (Sandbox Code Playgroud)

相同的功能可以改写为:

def test2(str):
    m = re.search(r'(\w+)', str)
    return m and m.group(1)
Run Code Online (Sandbox Code Playgroud)

这工作原理相同,并且是记录在案的行为; 作为此页中明确指出:

表达式x and y首先评估x; 如果x为false,则返回其值; 否则,y将评估并返回结果值.

但是,作为一个布尔运算符(它甚至在手册上都这么说),我期望and返回一个布尔值.结果,当我发现(如何)这有效时,我感到惊讶.

有什么其他用例,和/或这种相当不直观的实现的理由是什么?

python boolean-expression least-astonishment

11
推荐指数
2
解决办法
5967
查看次数

变量前面的感叹号 - 需要澄清

我已经使用PHP了很长一段时间了,但这对我来说总是一个谜,在变量前正确使用感叹号(负号).

有什么!$var表明?是var false,空,没有设置等?

以下是我需要学习的一些例子......

例1:

$string = 'hello';
$hello = (!empty($string)) ? $string : '';

if (!$hello)
{
    die('Variable hello is empty');
}
Run Code Online (Sandbox Code Playgroud)

这个例子有效吗?如果$string是空的话,if语句真的可以工作吗?

例2:

$int = 5;
$count = (!empty($int)) ? $int : 0;

// Note the positive check here
if ($count)
{
   die('Variable count was not empty');
}
Run Code Online (Sandbox Code Playgroud)

这个例子有效吗?

我从不使用上述任何示例,我将这些限制if ($var)为仅具有布尔值的变量.我只需要知道这些例子是否有效,这样我就可以扩大对if ($var)语句的使用范围.他们看起来很干净.

谢谢.

php variables if-statement boolean-expression negation

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

与两个谓词的Numpy链比较

在Numpy中,我可以像这样生成一个布尔数组:

>>> arr = np.array([1, 2, 1, 2, 3, 6, 9])
>>> arr > 2
array([False, False, False, False,  True,  True,  True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

有可能将比较链接在一起吗?例如:

>>> 6 > arr > 2
array([False, False, False, False,  True,  False,  False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy boolean-expression scipy

11
推荐指数
2
解决办法
1460
查看次数

是(x == x + 1)总是为整数x返回false?

我在面试准备书 - 面试算法中看到了这一点.它没有说出答案是什么.

根据我的知识,它确实返回错误.我错过了什么吗?

language-agnostic boolean-expression

10
推荐指数
3
解决办法
1642
查看次数

对于`x <y && y> x`有什么理由吗?

我正在浏览一些用于验证表单条目的Javascript代码,我注意到了一个if读取的语句if (!(x < y && y > x)) {...}

我最初的想法是,这种重言式结构完全是多余的,应该放弃两个比较中的一个.万一有机会我错了,但事实上还有更多,我想我会问.

我的另一个想法是,它可能是另一种语言所必需的一些成语的例子,程序员在这里只是习惯性地将它们带到Javascript中(虽然我会惊讶地发现这样的语言是必需的,也用于任何类型的环境).

编辑

特定代码的功能是测试提交事件的开始和结束日期是否可能(即结束日期是在开始日期之后).实际的例子读取if(!(start_time < end_time && end_time > start_time)) {...}其中两个start_timeend_timeDateTime值.

编辑2

不是这个问题的重复,因为在这种情况下,问题是需要测试在if声明中看起来相互包含的两个条件,而在这种情况下,问题是如何使if声明解决似乎需要两个相互排斥的条件是同时是真的.

javascript boolean-expression logical-operators

10
推荐指数
1
解决办法
160
查看次数