Functional programming plai类型:如何定义函数类型?

Functional programming plai类型:如何定义函数类型?,functional-programming,racket,static-typing,plai,Functional Programming,Racket,Static Typing,Plai,我在玩plai类型的语言。我有一个函数,它应该使用一个谓词函数(返回true或false)和一个项目列表 我的代码如下所示: (define-type-alias IndexT (listof IndexItemT)) (define (index->filter pf [index : IndexT]) : IndexT (filter pf index)) 我想表示,pf可以使用IndexItemT类型的值并返回bool 可以用plai语言写吗?如果是,如何进行?是。您可以使用

我在玩plai类型的语言。我有一个函数,它应该使用一个谓词函数(返回true或false)和一个项目列表

我的代码如下所示:

(define-type-alias IndexT (listof IndexItemT))

(define (index->filter pf [index : IndexT]) : IndexT
  (filter pf index))
我想表示,
pf
可以使用
IndexItemT
类型的值并返回
bool

可以用plai语言写吗?如果是,如何进行?

是。您可以使用类型构造函数来表示
pf
的类型

(define (index->filter [pf : (IndexItemT -> boolean)] [index : IndexT]) : IndexT
  ....)