计划如何在一个条款中测试2个条件?

Jon*_*han 3 scheme

我需要创建一个子函数,它将返回我所有相邻节点,这是我在Scheme中的这个问题所需要的.我是计划新手,不知道如何将两个条件合并为一个测试用例?

基本上我的算法是测试节点是否在边缘.这种情况我使用5x5网格.

如果两个节点都在拐角处意味着两者都等于1或5,那么我将只有2个相邻节点.如果只有一个节点被击中边缘,我将有3个节点返回值.如果节点周围没有边缘,我将有4个节点返回.

我的问题是如何将2个测试用例放在一个子句中?

(define (neighbors l w)
  (if (= 1 l) and (= 1 w)
      (display l w))) --at top left corner
Run Code Online (Sandbox Code Playgroud)

在这里,我想评估l和w是否都等于1.现在这不起作用,因为我不能在语法中使用"和"或"或"这样的关键字,也不能使用&或+来组合它们.有任何想法吗 ?或者我应该做点什么?

Net*_*rof 8

你试过这个:

(define (neighbors l w)
  (if (and (= 1 l) (= 1 w))
     (display l w))) --at top left corner
Run Code Online (Sandbox Code Playgroud)

因为当我看这个,好像工作方式