[Haskell-beginners] 'Simple' function

aldiyen aldiyen at aldiyen.com
Wed Jun 10 17:08:43 UTC 2015


And just as a note, you can't really ever get the value inside the IO monad out. IO is not pure / non-deterministic, since it depends on something outside the program, and there's no way to "make it pure", as it were. You have to do all your operations on that String within the context of an IO

-aldiyen



> On Jun 10, 2015, at 12:47, Steven Williams <theblessedadventhope at gmail.com> wrote:
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Here is return's type signature:
> 
> return :: Monad m => a -> m a
> 
> What you are doing with the do notation can also be expressed as ioStr
>>> = (\str -> return str).
> 
> do notation and bind both require you to have a value that has the
> same monad as before.
> 
> Steven Williams
> My PGP Key: http://pgp.mit.edu/pks/lookup?op=get&search=0xCACA6C74669A54
> FA
> 
>> On 10/06/15 12:35, Mike Houghton wrote:
>> Hi,
>> 
>> I’ve been tryimg to write a function  with signature
>> 
>> asString :: IO String -> String
>> 
>> 
>> Does someone please have the patience to explain to me what the
>> compiler error messages really mean for these two attempts and
>> exactly what I’m doing (!!!) If I *do not* give this function any
>> type signature then it works i.e..
>> 
>> asString ioStr = do str <- ioStr return $ str
>> 
>> and the compiler tells me its signature is
>> 
>> asString :: forall (m :: * -> *) b. Monad m => m b -> m b
>> 
>> which, at this stage of my Haskell progress, is just pure Voodoo. 
>> Why isn’t it’s signature  asString :: IO String -> String ?
>> 
>> 
>> Another naive attempt is asString ioStr = str where str <- ioStr
>> 
>> and then compiler says parse error on input ‘<-’
>> 
>> 
>> Many Thanks
>> 
>> Mike
>> 
>> _______________________________________________ Beginners mailing
>> list Beginners at haskell.org 
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
> 
> iQIcBAEBAgAGBQJVeGo5AAoJEMrKbHRmmlT6N8UP/i/tAhDtyHiG3sgH3e5xAqyt
> JAsyX2JaBQVjERRVaJQy1+Pg9hNdGBCrVljxY0BH5B8np956bnuIEyZKtSc2i2Jc
> HM0lBesyzCYqw29QxAyFFno07iXQllocZaHUIgC4AoNYO5zNGSPYcNaB4O5SYoKl
> 83Cjz97BHgAHkvHpsLDLOpizOkP+CsXwi8s/KRKoidLkbQpmv9SpqiFvmm9u+UK1
> emZF/4veFE4Ay3AvIsxMpn7M5hVoKgat1xyGX02IrenvkOL69IIYc+4OvzK49Lxg
> e8jrAehJDMh+U7zN+qVCY1ZyJbJF+uGawFC+XoswOdAra+Q23te77RKkligkmN7s
> ACut72hwTejZN/sIaORqZXuy+HUY1LjlJnlz0RCdG1CLkr3EaKG5ZCX3E2N8RnxL
> 1CKtEdtFJGDeBcIBh5my/7IC22loTpVhBhPU2DPo+iOP2sRsUs0nllbqbjGfGpuE
> m37dR/tfq9FKwqYS5RUuAcZ8fWuPdojmO2WvI4thHBGJhsRK4gqhAI4MnKLHBEoL
> xfyHSaoFif/jC7peF/+ZPjKSsIpCJU+R/tDUBM9u22o3IVeTs1sWGZXM7J32tlGc
> K/MTF/F3phcxwSCqb99WBHhXOIkKSgp47gx1INgDZFug/CgjUI1Sl4jvZ5j/45D5
> +RlHcYv+qp4J8nI59pFW
> =Vunc
> -----END PGP SIGNATURE-----
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


More information about the Beginners mailing list