而我心里越来越削弱Common Lisp的地位,觉得Scheme更为纯正,纯就纯在它至简的设计,Common Lisp还要分函数和变量两个名字空间,这时常让我觉得没有真正体现数据和函数一家的意思。
...[[1,10],[2,20],[3,30],[4,40],[5,50]]代表着转换规则1=>10,2=>20,3=>30,4=>40,5=>50
[[1,2],[3,4],[5,9]]里面只有9在转换表里找不到...,其他都可以转换,所以最终最右边的这个是 [[10,20],[30,40],[50,90]]
接下来就是如何实现turn,这个需要逐步递归过去。
...于是我们对于普通情况的turn就可以如下定义:
turn([A|B],C,S) :-
turn_list(A,C,D),
turn(B,C,S2),...柱3->柱2->...
3.对于偶数个盘的情况, 最小的盘的移动顺序是柱1->柱2->柱3->柱1->柱2->柱3->...
4.偶数步的移动发生在最小的盘所在柱子之外的两根柱子之间
对于上述