def fHighDotOperator(stack, z, mode):
if mode == 1: # num
def subfactorial(n):
soFar = [1, 0]
if n < 0:
raise ValueError("can't comput subfactorial of negative number")
if n < 2:
return soFar[n]
i = 2
while i <= n:
soFar.append((i-1)*(soFar[i-1]+soFar[i-2]))
i += 1
return soFar[-1]
stack.append(subfactorial(int(z)))
elif mode == 2: # str
stack.append([''.join(p) for p in itertools.permutations(z) if all(''.join(p)[i] != z[i] for i in range(len(z)))])
elif mode == 3: # list
stack.append([list(p) for p in itertools.permutations(z) if all(list(p)[i] != z[i] for i in range(len(z)))])
else:
monadNotImplemented(mode, '')
# ?
评论列表
文章目录