[Haskell-beginners] Questions on type declarations

ARJANEN Loïc Jean David arjanen.loic at gmail.com
Sat Oct 6 12:24:52 CEST 2012

On 06/10/2012 02:06, brandon s allbery kf8nh wrote:
> On Friday, 5 October 2012 at 19:55, thorsopia at lavabit.com wrote:
>> - getArgs :: IO [String]
>> It can get several params, but its type declaration looks like it gets
>> none.
> It doesn't get any Haskell parameters; it retrieves OS-level (not 
> Haskell-level) parameters to the program.  If you know Perl, it's the 
> difference between @_ and @ARGV; if Python, the difference between 
> local parameters and sys.argv.  You might infer from the fact that 
> other languages also distinguish, that there is an actual difference 
> between function parameters and program parameters; if you are not 
> clear on this, you will need to figure it out regardless of the 
> language you're working with.
Perhaps the confusion comes from the fact that languages such as C or 
Java treat the program parameters as function arguments to main. 
Position which is not completely non-sensical when calls such as exec() 
exist, but I'd rather that they divide the OS-level arguments from the 
language-level ones: they are different after all.

And, judging from its signature, getArgs isn't a function without 
parameters but a value representing a list of program parameters, 
possibly empty. Said value coming from the system, it is in IO.
>> - dispatch :: [(String, [String] -> IO ())]
> Looks to me like it's described fairly well by the text.  What is your 
> confusion?
> It is an association list:  a list of pairs, the first element being a 
> key and the second being a value.  The value in this case is a 
> function which takes a list of strings and produces an IO action.
> -- 
> brandon s allbery kf8nh sine nomine associates
> allbery.b at gmail.com  ballbery at sinenomine.net
> unix/linux, openafs, kerberos, infrastructure  http://sinenomine.net
> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20121006/53cb456f/attachment.htm>

More information about the Beginners mailing list