0

我正在使用早期的 ProjectEuler 问题作为了解 Factor 的一种方式。我已经在第一个问题中找不到令人满意的解决方案。

我可以用这个解决除法测试

: 3or5divisible ( n -- ? ) [ 3 mod ] [ 5 mod ] bi * 0 = ;

但我不喜欢的是重复mod。当然只有两次,但另一个问题可能需要检查200。

我尝试使用map, curry, bi, 2bi, bi@, 数组和普通堆栈值等。我总是得到堆栈下溢或效果不匹配(使用时map)。我还没有找到在检查器中查看我的试验结果的方法。

我怎样才能将mod其分解并应用于{ 3 5 }或等效堆栈?
Cool 将是两个变体,例如 a mod3and5(包括效果规范);一个留2 1在堆栈上输入 11 和一个返回{ 2 1 }

4

1 回答 1

0

我只能想到这样做,它删除了一个mod,但最终添加了一个bi-curry@功能。

: 3or5divisible ( n -- ? ) 3 5 [ mod ] bi-curry@ bi * 0 = ;
于 2021-11-26T23:52:30.360 回答