首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合金性能要求高

合金性能要求高
EN

Stack Overflow用户
提问于 2013-03-11 06:02:40
回答 1查看 666关注 0票数 0
代码语言:javascript
复制
sig Student, Tutor, Mark {} 
sig Course { 
    reg : set Student, 
    alloc : Student -> Tutor, 
    result : Student -> Mark 
   } 

我希望能够将课程c作为输入;输出一组导师,他们负责一个或多个注册到c的学生,他们还没有分数。

有谁能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-11 09:36:24

这一次,你似乎是在问如何在合金中编写集合理解。然后,您可以使用集合理解来编写一个函数,该函数针对给定的课程返回所有注册了该课程的学生,这样他们就不会被分配分数。在此之后,很容易直接从alloc关系中选择分配给这些学生的导师。

合金中集合理解的语法如下所示

代码语言:javascript
复制
{x: expr | condition(x)}

它的意思是“选择属于set x的所有expr,使condition(x)保持”。

以下是如何为您的问题编写以下代码:

代码语言:javascript
复制
sig Student, Tutor, Mark {}

sig Course {
  reg: set Student, 
  alloc: Student -> Tutor,
  result: Student -> Mark
}

fun studentsWithNoMarks[c: Course]: set Student {
  {s: c.reg | no c.result[s]}
}

fun tutorsForStudentsWithNoMarks[c: Course]: set Tutor {
  c.alloc[studentsWithNoMarks[c]]
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15328207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档