
On 12/14/06, Ross Paterson
Absolutely. Some more questions of this type:
How do I update a variable? How can I efficiently update an array? How do I get debugging output? How can I put different types of things in a list?
Sometimes the person asking is ready for the advanced features, but all too often beginners are pointed at IORefs, the ST monad, trace and existential types, when, as you say, they probably asked the wrong question because they don't have the frame of reference to know what they need.
I've definitely made that mistake about the heterogenous list. I blurted out existential code when they just didn't know about "data" types. Sure I see the mistake I made there, but variant types are often assumed to have been ruled out--it's kind of step one with Haskell. That's not to say it was the poster's fault: any question is a good question. Sometimes it's appropriate to assume some knowledge on the poster's behalf, and it would be tedious if every first response was a list of 10 questions gauging the poster's familiarity with various intro topics. Brainstorming: 1) The first response to a FAQ should be a link to a thorough treatment of the FAQ on the wiki. Of course first responders ignorant of the wiki FAQ's existence wouldn't be able to do this, but if the community is consistent, then people will most likely catch on (I suddenly realize that I'm talking about myself...) 2) The "welcome to the mailing list" message could say "if you're new to Haskell, please check this FAQ first". I'm talking big letters here; I'd even be OK with <marquee>. Are these rules too draconian? Should we just adopt the tedium of quizing every new poster? What are some other steps that could help prevent overly sophistocated first responses? Nick