Someone wrote:

> Honestly, would you use a language which does not allow to program a
> depth-first graph traversal in O(n).


Ah.  I didn't realize it was that bad.  My understanding of 
Haskell is quite rudimentary.


And yet, now that I think about it, I have never implemented a
depth-first graph traversal except in university classes!


I admit that I am not a very experienced programmer-- I have 
worked for about three years in the industry doing 
multiplatform GUI apps in C++, Internet utilities in C, C++ and
Perl, cryptography and e-commerce in C and C++, some generic 
utility classes in C++ (doesn't _everyone_ do generic utilities
for C++?  :-) ), and intranet/internet management software in 
Perl for the banking industry.  Also I've written a couple of 
games for my own amusement (including one in Turbo Pascal and 
one in an old 16-bit BASIC), and probably sundry other small 
projects.


But I've yet to implement a graph structure of any sort (as far
as I can remember) and then try to traverse it efficiently.


For that matter I've never implemented a sorting algorithm 
except in University...  Oh wait-- yes I did but it was a waste
of time because it turned out that "n" was so small that O(n^2)
was acceptable.



Of course, graph traversal, sorting and such algorithms are 
extremely important to a lot of work, and in fact were 
necessary for some of what _I've_ done (specifically a GUI 
app which enabled the user to mark-up a bitmap image) but
in those cases I used a pre-existing library, or a library 
developed by a co-worker.



I suppose if my C++ utilities had evolved for long enough they
would have soon included some computationally intensive 
algorithms, but as it was they consisted only of reference-
counting utilities, string-manipulation utilities, unsorted 
arrays and so forth.


I hope that my contributions to this forum are helpful.  My
understanding of Haskell is woefully primitive, but since the 
discussion had turned to "making it useful for the world's 
programmers" I thought my perspective might be useful.



Regards,

Zooko



Reply via email to