Myles C. Maxfield | 3 Jan 08:50 2013
Picon

Safe 'chr' function?

Hello,

I'm working on a general text-processing library [1] and one of my quickcheck tests is designed to make sure that my library doesn't throw exceptions (it returns an Either type on failure). However, there are some inputs that cause me to pass bogus values to the 'chr' function (such as 1208914), which causes it to throw an exception. Is there a version of that function that is safe? (I'm hoping for something like Int -> Maybe Char). Alternatively, is there a way to know ahead of time whether or not an Int will cause 'chr' to throw an exception?

Thanks,
Myles C. Maxfield

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Sai Hemanth K | 3 Jan 09:04 2013
Picon

Re: Safe 'chr' function?

>Alternatively, is there a way to know ahead of time whether or not an Int will cause 'chr' to throw an exception?

since Char is in instance of 'Bounded' as well as 'Enum'

wouldn't fromEnum (maxBound :: Char) give the max value of Int for which a valid char exists?


On Thu, Jan 3, 2013 at 1:20 PM, Myles C. Maxfield <myles.maxfield <at> gmail.com> wrote:
Hello,
I'm working on a general text-processing library [1] and one of my quickcheck tests is designed to make sure that my library doesn't throw exceptions (it returns an Either type on failure). However, there are some inputs that cause me to pass bogus values to the 'chr' function (such as 1208914), which causes it to throw an exception. Is there a version of that function that is safe? (I'm hoping for something like Int -> Maybe Char). Alternatively, is there a way to know ahead of time whether or not an Int will cause 'chr' to throw an exception?

Thanks,
Myles C. Maxfield


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe




--
I drink I am thunk.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Michael Snoyman | 3 Jan 09:05 2013

Re: Safe 'chr' function?

You could wrap chr with a call to spoon[1]. It's not the most elegant solution, but it works.



On Thu, Jan 3, 2013 at 9:50 AM, Myles C. Maxfield <myles.maxfield <at> gmail.com> wrote:
Hello,
I'm working on a general text-processing library [1] and one of my quickcheck tests is designed to make sure that my library doesn't throw exceptions (it returns an Either type on failure). However, there are some inputs that cause me to pass bogus values to the 'chr' function (such as 1208914), which causes it to throw an exception. Is there a version of that function that is safe? (I'm hoping for something like Int -> Maybe Char). Alternatively, is there a way to know ahead of time whether or not an Int will cause 'chr' to throw an exception?

Thanks,
Myles C. Maxfield


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Myles C. Maxfield | 3 Jan 09:52 2013
Picon

Re: Safe 'chr' function?

Thanks you two for your answers. Consider this issue closed now :-)


--Myles

On Thu, Jan 3, 2013 at 12:05 AM, Michael Snoyman <michael <at> snoyman.com> wrote:
You could wrap chr with a call to spoon[1]. It's not the most elegant solution, but it works.



On Thu, Jan 3, 2013 at 9:50 AM, Myles C. Maxfield <myles.maxfield <at> gmail.com> wrote:
Hello,
I'm working on a general text-processing library [1] and one of my quickcheck tests is designed to make sure that my library doesn't throw exceptions (it returns an Either type on failure). However, there are some inputs that cause me to pass bogus values to the 'chr' function (such as 1208914), which causes it to throw an exception. Is there a version of that function that is safe? (I'm hoping for something like Int -> Maybe Char). Alternatively, is there a way to know ahead of time whether or not an Int will cause 'chr' to throw an exception?

Thanks,
Myles C. Maxfield


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Gmane