首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Racket :模块中的未绑定标识符:向量?

Racket :模块中的未绑定标识符:向量?
EN

Stack Overflow用户
提问于 2014-02-26 21:16:30
回答 1查看 2.2K关注 0票数 0

我试图使用#lang plai类型在racket中运行一个程序,但我一直得到“未绑定标识符”错误。

代码语言:javascript
复制
(define (get-fundef [n : symbol] [fds : (vector FunDefC)]) : FunDefC
  (cond [(empty? fds)
         (error 'get-fundef "reference to undefined function")]
        [(vector? fds)
         (cond [(equal? n (fdC-name (vector-ref fds 0))) (vector-ref fds 0)]
               [else (get-fundef n (vector-drop fds 1))])]))

当我以'listof‘而不是’向量‘作为输入时,根据列表类型进行调整,它就能工作了。我得到的向量是:

‘模块中的未绑定标识符在:向量?’

帮助?

EN

回答 1

Stack Overflow用户

发布于 2014-03-16 22:39:37

#lang plai-typed没有vector?函数,原因与它没有list?symbol?number?函数的原因相同:您不需要检查值的类型;类型注释告诉您。

如果要检查向量是否为空,则可以使用(= 0 (vector-length fds))(< 0 (vector-length fds))

但你为什么要用向量呢?清单往往更方便:

  • 列表中还有更多的实用程序函数;特别是,filter在这里会有所帮助。
  • 向量不太容易重述,因为没有vector-dropvector-rest函数。如果您真的想迭代一个向量,那么您可能需要使用一个索引。
  • 向量是可变的,除非你真的需要它,否则你不想要它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22053453

复制
相关文章

相似问题

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