嗨,我正在尝试编写一个程序,给定列表列表检查它们是否大小相等,如果它们返回#t.
那么例如,如果我要写(列表计数器?'((1 2 3)(4 5 6)(7 8 9)))程序将返回#t,和(list-counter?'((1 2) 3)(4 5 6)(7 8)))将返回#f.
到目前为止,这就是我所做的:
(define list-counter?
(lambda (x)
(if (list? x)
(if (list?(car x))
(let (l (length (car x))))
(if (equal? l (length(car x))))
(list-counter?(cdr x))
) ) ) ) )
Run Code Online (Sandbox Code Playgroud)
在我将l的长度设置为第一个列表的长度之后,我想我错了.任何帮助,将不胜感激.
我正在尝试创建一个简单的数据库,其中有一个客户数据表和一个订单数据表.我正在尝试编写一个约束,使得客户无法在特定日期订购超过特定数量的商品.这就是我所拥有的:
CREATE TABLE CUSTOMER
(
CUSTOMER_NUM CHAR(3) PRIMARY KEY,
CUSTOMER_NAME CHAR(35) NOT NULL,
STREET CHAR(15),
CITY CHAR(15),
STATE CHAR(3),
ZIP CHAR(5),
);
CREATE TABLE ORDERS
(
ORDER_NUM CHAR(5) PRIMARY KEY,
ORDER_DATE DATE,
CUSTOMER_NUM CHAR(3),
CONSTRAINT CUSTOMER_NUM_FKEY FOREIGN KEY (CUSTOMER_NUM)
REFRENCES CUSTOMER (CUSTOMER_NUM) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
);
Run Code Online (Sandbox Code Playgroud)
这就是我为强制执行此约束而编写的内容,但它不起作用.我假设它是因为ORDER_NUM和ORDER_DATE永远不会有相同的值.
CREATE ASSERTION ITEM_LIMIT
CEHCK(
( SELECT COUNT(*)
FROM CUSTOMER C1, ORDERS O1
WHERE C1.CUSTOMER_NUM = O1.CUSTOMER_NUM AND
O1.ORDER_DATE = O1.ORDER_NUM
) <= 1000
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使这个约束起作用,比如如何限制每天的订单量.
我得到了一些代码,其中包含由不同类型的列表组成的对象.我的意思的一个简单例子:
public class Account
{
private long accountID;
private List<string> accountHolders;
private List<string> phoneNumbers;
private List<string> addresses;
public Account()
{
this.accountHolders = new List<string>();
this.phoneNumbers = new List<string>();
this.addresses = new List<string>();
}
public long AccountID
{
get
{
return this.accountID;
}
set
{
this.accountID = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于需求,我需要获取每个列表中的元素总数以进行验证.我有以下方法可行:
public class AccountParser
{
// Some code
public int CountElements(Account acct)
{
int count = 0;
count += acct.accountHolders.Count();
count += acct.phoneNumbers.Count();
count += acct.addresses.Count();
return count;
}
} …Run Code Online (Sandbox Code Playgroud)