首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >球拍函数,称为aunt names

球拍函数,称为aunt names
EN

Stack Overflow用户
提问于 2014-03-16 02:09:35
回答 1查看 67关注 0票数 0

我目前正在做一个任务,在球拍中创建一个名为aunt names的函数。该函数的目的是接受一个person结构和一个person结构列表,并返回该person的所有姑妈的排序列表。我不太确定如何启动这个函数,但我已经完成了这些对函数有帮助的函数:

female-list函数

代码语言:javascript
复制
(define (female-list flist)   
  (cond [(empty? flist) empty]
        [(equal? 'female (person-sex (first flist)))
         (cons (first flist)
               (female-list (rest flist)))]
        [else (female-list (rest flist))]))

兄弟姐妹?函数

代码语言:javascript
复制
    (define (sibling? personA personB)
      (cond [(equal? personA personB) false]
            [(equal? (person-father personA) (person-father personB)) true]
            [(equal? (person-mother personA) (person-mother personB)) true]
            [else false]))
EN

回答 1

Stack Overflow用户

发布于 2014-03-17 06:00:46

这看起来是一个很好的开始。在编写姑妈姓名的主体之前,这里有一些可能会有用的更多帮助函数的想法:

如果personA的性别是personB

  • (aunt-or-uncle-of? personA personB):,则
  • (female? personA):返回true;如果personB
  • (aunt-or-uncle-list personA people-list):的父亲或母亲是personA,则personA返回true;如果personA是people-list).
  • (aunt-list personA people-list):的姑妈或姑父,则返回true;如果personA是personA的姑妈,则返回true;如果每个person结构都是person结构的列表,则每个结构都是person结构的列表(并且每个最初在people-list).
  • (aunt-list personA people-list):中的结构都返回person结构的列表,如果personA是personA,则返回true;如果personA是person的姑妈,则返回true;如果personA是person的姑母,则返回true;如果personA是personA的姑母,则返回true;如果personA是person的姑母,则返回true;如果personA是person的姑妈,则返回true)其中每个人都是personA的姑妈(每个人最初都在人物列表中)。(注意,这不同于姑妈名字,因为它返回整个人结构,而不仅仅是名字,而且不会对它们进行排序。)

它们可以相互构建,也可以构建在您已有的助手函数上。这可能看起来像许多小函数,但这样每个函数都会非常清晰,如果出现问题,可以分别对它们进行测试。

另一种策略是首先开始编写主函数(aunt-names)的主体,然后假装您想要使用的任何辅助函数已经存在。例如,在编写female-names时,您可以像这样分解它:

代码语言:javascript
复制
(define (female-list flist)   
  (cond [(empty? flist) empty]
        [(female? (first flist)) ; TODO: go back and write "female?"
         (cons (first flist)
               (female-list (rest flist)))]
        [else (female-list (rest flist))]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22427741

复制
相关文章

相似问题

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