我正在尝试创建一个简单的“注册”方法。
-- Creates a new account
public signup: String * String ==> ()
signup(username, password) == (
-- create user
dcl user: User := new User(username, password);
-- add user
users := users union {user};
)
pre (let u in set users in u.username <> username);
我遇到的问题是前提条件。如何编写前提条件“用户名是唯一的”?(即user
在users
where中没有user.username = username
)
注:users
是set
一个User
编辑:pre (username not in set users.username)
对我来说最有意义,但这甚至无法编译。