在scheme中创建员工和工作分配列表时遇到语法错误
我的计划有问题。我必须定义一个函数在scheme中创建员工和工作分配列表时遇到语法错误,scheme,Scheme,我的计划有问题。我必须定义一个函数(jobs\u ok?Assignment Employees),其中jobs\u ok?接受Assignment和Employees作为两个参数,Assignment和Employees是包含子列表的两个列表作业应包含4个名称,其中名称分配给特定作业。对于分配给它的4个子列表中的每一个子列表,Employees应该接受输入到Assignment中的姓名,其中有一个人的姓名,后跟三个整数(1或0),如果分配给该人的工作的整数为1,则返回true;否则返回fals
(jobs\u ok?Assignment Employees)
,其中jobs\u ok?
接受Assignment
和Employees
作为两个参数,Assignment
和Employees
是包含子列表的两个列表<代码>作业应包含4个名称,其中名称分配给特定作业。对于分配给它的4个子列表中的每一个子列表,Employees
应该接受输入到Assignment
中的姓名,其中有一个人的姓名,后跟三个整数(1或0),如果分配给该人的工作的整数为1,则返回true;否则返回false。我写下了我的代码,但出于某种原因,它说在意外标记'jobs\u ok?'
附近有一个语法错误,然后它显示了下面的行:'(定义(jobs\u ok?Assignment Employees)
所以我想知道我的代码怎么了?下面是我的代码:
(define (jobs_ok? Assignment Employees)
(define (Assignment 9:00-11:00 11:00-1:00 1:00-3:00 3:00-5:00)
(define (9:00-11:00 phone1 phone2 computerRepair networkRepair)
(cond ((string? phone1 phone2 computerRepair networkRepair) #F)
(#T (phone1 phone2 computerRepair networkRepair))))
(define (11:00-1:00 phone1 phone2 computerRepair networkRepair)
(cond ((string? phone1 phone2 computerRepair networkRepair) #F)
(#T (phone1 phone2 computerRepair networkRepair))))
(define (1:00-3:00 phone1 phone2 computerRepair networkRepair)
(cond ((string? phone1 phone2 computerRepair networkRepair) #F)
(#T (phone1 phone2 computerRepair networkRepair))))
(define (3:00-5:00 phone1 phone2 computerRepair networkRepair)
(cond ((string? phone1 phone2 computerRepair networkRepair) #F)
(#T (phone1 phone2 computerRepair networkRepair)))))
(define (Employees employeeName)
(define (employeeName phone1 phone2 computerRepair networkRepair)
(define (phone1 phone computer network)
(cond ((= phone 0) #F) (#T phone1)))
(define (phone2 phone computer network)
(cond ((= phone 0) #F) (#T phone2)))
(define (computer phone computer network)
(cond ((= computer 0) #F) (#T computer)))
(define (network phone computer network)
(cond ((= network 0) #F) (#T network)))))
(cond ((equal? (Assignment) #F) #F) ((equal? (Employees) #F) #F) (#T jobs_ok?)))
下面是我在mobaxterm中运行它的方式:
/jobs\u ok.scm
您的代码包含许多错误,包括:
- 定义内部定义
- 在没有必需参数的情况下调用函数
- 函数字符串?用四个参数调用
(define (check-shift Shift Employees)
(and (= 1 (first (cdr (assoc (first Shift) Employees))))
(= 1 (first (cdr (assoc (second Shift) Employees))))
(= 1 (second (cdr (assoc (third Shift) Employees))))
(= 1 (third (cdr (assoc (fourth Shift) Employees))))))
(define (jobs_ok? Assignment Employees)
(and (check-shift (first Assignment) Employees)
(check-shift (second Assignment) Employees)
(check-shift (third Assignment) Employees)
(check-shift (fourth Assignment) Employees)))