我有一长串包含类似
的内容201 Created
我想执行listWidget.itemPressed['QListWidgetItem*'].connect(lambda item: item.setCheckState(QtCore.Qt.Checked if item.checkState()==QtCore.Qt.Unchecked else QtCore.Qt.Unchecked))
基本上将模式a:[1, a, -b, -a*b, j, -j, j^2, -j^3, a*j, a*j^2, -a*j,- a*j^2, a*b*j, a*j^4, -a*b*j^7];
列表中的所有匹配项都替换为j^x -> j^(3 mod x)
。
subst和ratsubst等似乎在寻找一种字面上不是符号的模式。
在Maxima中有没有办法做到这一点?
谢谢
答案 0 :(得分:2)
我认为您可以为此使用模式匹配。 (模式匹配是指匹配表达式,而不是字符串。)tellsimp
和tellsimpafter
定义了自动应用的规则; defrule
和defmatch
定义了明确应用的规则。另请参见matchdeclare
。
通过defrule
的解决方案可能看起来像这样;我还没有尝试过。
matchdeclare (nn, lambda ([e], integerp(e) and e >= 3));
defrule (r1, j^nn, j^(mod(3, nn)));
apply1 (mylist, r1);
其中mylist
是上面的列表。 (我认为将列表分配给a
是有问题的,因为a
作为产品中的术语出现...。)