Thanks Jameson.

It would be pretty rad if the `Function` type had an args and return type
parameters, a la:

map{T}(x::Function{1,T},collection::Array{T})

Is that what you're referring to with "function type declaration syntax"?
Or just being able to specify the return type? I remember there's a few
issues about specifying function return types. This might be tricky with
varags... though through a type parameter.

-Jacob


On Tue, May 27, 2014 at 8:21 PM, Jameson Nash <vtjn...@gmail.com> wrote:

> cfunction performs this sort of early method testing
>
> although that's probably not quite what you want
>
> i'm assuming your are using this for a callback, so the inflexible
> interface makes sense. It sounds like you want a function type
> declaration syntax. There's a low numbered issue to implement that
> (since it can be used to give a speed boost to first-class function
> arguments), but there haven't been any attempts to write the necessary
> code AFAIK
>
> On Tue, May 27, 2014 at 6:33 PM, Jacob Quinn <karbar...@gmail.com> wrote:
> > I'm thinking there's probably a better way to do this.
> >
> > For some date-related stuff, I have a method that needs to take an
> > "inclusion" function as an argument and I'm wondering what the best way
> to
> > validate that the user has supplied a correctly formed "inclusion"
> function.
> > The requirements are that the provided function, either generic or
> > anonymous, take a single TimeType argument and return a Bool. So
> >
> > ismonday(x::TimeType) = dayofweek(x) == Monday
> >
> > and
> >
> > x->dayofweek(x)==Monday
> >
> > Are both valid functions to pass to my method, but what's the best way to
> > validate? I looked at `applicable`, but it's for generics only. For now
> I'm
> > just doing:
> >
> > func(T(0)) in (true,false) || throw(ArgumentError("Provided function must
> > take a single TimeType argument and return true or false"))
> >
> > where `func` is the user-provided inclusion function and `T` is the
> TimeType
> > we're dealing with. The main problem is if a 2-arg method is supplied, I
> get
> > a wrong number of args error and I'd rather not have to use try-catch.
> >
> > Any ideas? Something more clever?
> >
> > -Jacob
>

Reply via email to