给定一个任意的上下文无关语法,我如何检查它是否描述了一种常规语言?
我不是在找考试“花招”。我在找一个绝对可靠的机械测试,我可以编码。
如果有帮助的话,这里有一个CFG的例子,我可能会收到它作为输入。特别要注意的是,答案必须比寻找左递归或右递归要复杂得多,因为另一种递归的存在并不自动意味着语法是不规则的。
S: A B C D X
A: A a
A:
B: b B
B:
C: c C c
C: c
D: D d D
D: d
X: x Y
X:
Y: y X
Y:
假设我们有一个BankCard实体,它是客户端聚合的一部分。客户端可能想取消她的BankCard
class CancellBankCardCommandHandler
{
public function Execute(CancelBankCardCommand $command)
{
$client = $this->_repository->get($command->clienId);
$bankCard = $client->getBankCard($command->bankCardId);
如果我的函数满足了下面列出的两个要求,我相信函数Sum返回列表中项的求和,其中item对于给定的条件计算为true。这不意味着这个函数可以归为纯函数吗?
需求
对于给定的i/p集,无论何时调用函数,都会返回相同的o/p。
它没有任何副作用
public int Sum(Func<int,bool> predicate, IEnumerable<int> numbers){
int result = 0;
foreach(var item in numbers)
if(predicate(item)) res