associativity

    4热度

    3回答

    我已经到了The Ruby Programming Language的运营商部分,这让我想到了运营商关联性。这不是一个Ruby问题,它适用于所有语言。 我知道操作员必须关联某种方式,而且我可以看到为什么在某些情况下,一种方式比另一种方式更可取,但我很难看到更大的图像。语言设计者是否有一些标准来决定什么是从左到右,什么应该是从右到左?在某些情况下,它是“有道理的”,因为它是对其他方式的一种方式,而在

    5热度

    4回答

    给予代码: my $x = 1; $x = $x * 5 * ($x += 5); 我希望$x是180: $x = $x * 5 * ($x += 5); #$x = 1 $x = $x * 5 * 6; #$x = 6 $x = 30 * 6; $x = 180; 180; 但取而代之的则是30;但是,如果我更改条款的顺序: $x = ($x += 5) * $x * 5

    0热度

    3回答

    由于'?'的关联性,是从右到左,任何2个连续的'?'运营商必须如此对待,对吗? 现在, int x=-1; int y=x?x++?x:-1:1; 我希望这是执行为: '?' int y = x ? (x++?x:-1) : 1; 现在,因为它正从从右到左执行,遇到第一个时在声明中,X的值是0,表达式为 int y= x? 0 : 1; 因此,我预计Y中1,但它表明我的DEV-cpp

    1热度

    1回答

    (这一切首先是不是硬件,我知道所有的答案) 我有一个简单的BNF语法 <UNIT> ::= (<CLAUSE>) | a | b | c <ITEM> ::= not <UNIT> | <UNIT> <CLAUSE> ::= <CLAUSE> and <PHRASE> | <PHRASE> <PHRASE> ::= <ITEM> | <ITEM> or <PHRASE> and运算符是左

    3热度

    2回答

    我知道perlop。我所寻找的是一个快速查找喜欢GHCI :info命令: ghci> :info (+) class (Eq a, Show a) => Num a where (+) :: a -> a -> a ... -- Defined in GHC.Num infixl 6 + 在那里我学到(+)是左关联的,并且具有从infixl 6 +线6优先级

    1热度

    4回答

    printf ("%d \n", 2 > !3 && 4 - 1 != 5 || 6) ; 有人可以向我解释这是如何评估?我最困惑的是在3前面的!符号...如何评估2 > !3?

    4热度

    2回答

    public function add($ child){ return $ this-> children [] = $ child; } 顺便说一句,这是来自Dagfinn Reiersol在PHP中的摘录。根据这本书,这会返回$ child,但是不应该在成功分配的情况下返回true,否则返回false? 在此先感谢

    3热度

    3回答

    在http://novosial.org/perl/one-liner/我发现了以下两个单线。输出不同,因为unless声明不同于if !(由于关联性和优先级规则)。 cat file: foo bar perl -ne 'print unless /^$/../^$/' file foo bar perl -ne 'print if ! /^$/../^$/'

    7热度

    2回答

    是否有可能构造一个高阶函数isAssociative,它接受两个参数的另一个函数并确定该函数是否是关联的? 类似的问题,但其他属性,如交换性以及。 如果这是不可能的,有什么方法可以用任何语言自动化它吗?如果有我感兴趣的Agda,Coq或Prolog解决方案。 我可以设想一个蛮力解决方案,它检查每个可能的参数组合并永不终止。但是,“永不终止”在这种情况下是不受欢迎的。