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 >