[racket-dev] Roogle?
8 minutes ago, Anthony Cowley wrote:
> On Fri, Aug 5, 2011 at 1:22 AM, Eli Barzilay <eli at barzilay.org> wrote:
> > That's not surprising -- the question is how much the
> > search-by-type feature is used vs the plain by-name searches.
>
> Search-by-type is the main useful feature. Another search engine,
> hayoo, often does better on name-based searches covering
> hackage. Some people run local instances of hoogle as it is
> relatively straightforward to hook into emacs and will index all the
> types and names from all the packages you have installed locally.
OK, that sounds closer to what I asked... (And on the positive side.)
> > We already have that kind of exploratory searching, since "types"
> > in the contract system are real functions.
> >
> > I guess that this is another way to make the point: in Haskell and
> > other statically typed languages types are second-class, but in
> > Racket they're first class so looking for a type name will get you
> > information because it's also a binding. (And the same goes for
> > TR, only those are not runtime values.)
>
> Searching by type names and aliases works fine:
> <http://www.haskell.org/hoogle/?hoogle=String>
Yes, what I'm saying is that in Haskell, if you have a tool that
searches for bound values, you won't get types, therefore you need to
have a specific tool (or extension of one) that can search types. In
Racket, then "contract type" is `string?', which is something that you
can look for even without a special by-contract search.
> Hoogle really is quite good, don't sell it short!
I'm not -- the above point is in no way saying anything bad about it,
it's just an observation about the differences between the two
language worlds.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!