如何在返回多个值的结构中编写保护子句

伊莱·萨多夫(Eli Sadoff)

我一直在向自己教球,我正在尝试在球拍中创建一个结构,并且一直在尝试解决不同的练习问题。现在,我正在尝试创建具有以下规范的结构:

名称:grade
栏位:

midterm(必须为整数且大于0
final(必须为整数且大于0)
course(必须为symbol或false)

到目前为止我写的是这个

(struct grade (midterm final course)
  #:guard (λ (midterm final course name)
            (unless (and (integer? final) (> final 0))
              (error "not a valid final grade"))
            (unless (and (integer? midterm) (> midterm 0))
              (error "not a valid midterm grade"))
            (unless (or (symbol? course) (false? course))
              (error "not a valid course grade"))
            '(midterm final course)))

但这是无法实现的。我相信,因为guard子句返回list '(midterm final course),但是我尝试了其他实现,其中涉及到guard子句返回(midterm final course),但midterm final course也无法正常工作。我该怎么做才能使该保护条款起作用?

短棍

guard子句的结果必须为n values,对于该结构的每个字段一个。请注意,这与列表不同。假设逻辑的其余部分是正确的,你只需要更换'(midterm final course)(values midterm final course)完整的结果如下。

(struct grade (midterm final course)
  #:guard (λ (midterm final course name)
            (unless (and (integer? final) (> final 0))
              (error "not a valid final grade"))
            (unless (and (integer? midterm) (> midterm 0))
              (error "not a valid midterm grade"))
            (unless (or (symbol? course) (false? course))
              (error "not a valid course grade"))
            (values midterm final course)))

有了这个,我就能做到(grade 100 100 'racket101),例如。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Windows中编写保护性MBR?

来自分类Dev

如何在函数保护子句中测试结构的值?

来自分类Dev

如何在Android上以编程方式编写保护NTAG203 NFC芯片?

来自分类Dev

如何从Where条件中的CASE子句返回多个值

来自分类Dev

如何在写保护模式下在Excel 365(应用程序)中打开Excel文件?

来自分类Dev

如何在Matlab中返回多个值?

来自分类Dev

如何在多行中返回多个值

来自分类Dev

如何在Ruby中的when子句中编写带有多个语句的case语句?

来自分类Dev

如何使用diskpart在Win 7中关闭写保护?

来自分类Dev

在配置中如何突然使磁盘受到写保护是读/写

来自分类Dev

如何在Rust中按值返回结构体?

来自分类Dev

如何在lua中的函数返回中返回多个值

来自分类Dev

如何在lua中的函数返回中返回多个值

来自分类Dev

如何在where子句mysql中检查多个字段中的空值

来自分类Dev

如何在tsql查询中从存储过程返回多个值

来自分类Dev

如何在多个线程中收集方法的返回值

来自分类Dev

如何在数组中返回多个值-Excel VBA

来自分类Dev

如何在tsql查询中从存储过程返回多个值

来自分类Dev

如何在 Scala 中以选项类型返回多个值?

来自分类Dev

如何在JOOQ中编写OPTIONAL where子句

来自分类Dev

如何在JOOQ中编写OPTIONAL where子句

来自分类Dev

如何在 Where 子句条件中编写动态删除条件

来自分类Dev

如何在Hive中编写“ where”子句以过滤掉另一个表中的值

来自分类Dev

我们如何编写在C ++中返回多个值的函数

来自分类Dev

如何检查文件夹的写保护?

来自分类Dev

如何写保护USB密钥?

来自分类Dev

如何使Pendrive处于写保护状态?

来自分类Dev

如何进行写保护的Ubuntu安装?

来自分类Dev

如何对SD卡进行写保护?

Related 相关文章

  1. 1

    如何在Windows中编写保护性MBR?

  2. 2

    如何在函数保护子句中测试结构的值?

  3. 3

    如何在Android上以编程方式编写保护NTAG203 NFC芯片?

  4. 4

    如何从Where条件中的CASE子句返回多个值

  5. 5

    如何在写保护模式下在Excel 365(应用程序)中打开Excel文件?

  6. 6

    如何在Matlab中返回多个值?

  7. 7

    如何在多行中返回多个值

  8. 8

    如何在Ruby中的when子句中编写带有多个语句的case语句?

  9. 9

    如何使用diskpart在Win 7中关闭写保护?

  10. 10

    在配置中如何突然使磁盘受到写保护是读/写

  11. 11

    如何在Rust中按值返回结构体?

  12. 12

    如何在lua中的函数返回中返回多个值

  13. 13

    如何在lua中的函数返回中返回多个值

  14. 14

    如何在where子句mysql中检查多个字段中的空值

  15. 15

    如何在tsql查询中从存储过程返回多个值

  16. 16

    如何在多个线程中收集方法的返回值

  17. 17

    如何在数组中返回多个值-Excel VBA

  18. 18

    如何在tsql查询中从存储过程返回多个值

  19. 19

    如何在 Scala 中以选项类型返回多个值?

  20. 20

    如何在JOOQ中编写OPTIONAL where子句

  21. 21

    如何在JOOQ中编写OPTIONAL where子句

  22. 22

    如何在 Where 子句条件中编写动态删除条件

  23. 23

    如何在Hive中编写“ where”子句以过滤掉另一个表中的值

  24. 24

    我们如何编写在C ++中返回多个值的函数

  25. 25

    如何检查文件夹的写保护?

  26. 26

    如何写保护USB密钥?

  27. 27

    如何使Pendrive处于写保护状态?

  28. 28

    如何进行写保护的Ubuntu安装?

  29. 29

    如何对SD卡进行写保护?

热门标签

归档