Hello Sara,

Sunday, June 18, 2006, 9:04:05 AM, you wrote:

you should write stop alternatives first, because Haskell tries
alternatives just sequentially, topmost first:

listOfString :: [(String,String)] -> [String]
listOfString [("","")] = []
listOfString [(s1,s2)] = s1: listOfString (lex s2)



> I tried to write function lexList by using an intermediate function
> lisOfString as below:

> module Lex where
> lexList :: String -> [String]
> lexList str = listOfString (lex str)
> lexList [] =[]

> listOfString :: [(String,String)] -> [String]
> listOfString [(s1,s2)] = s1: listOfString (lex s2)
> listOfString [("","")] = []


> When I try function lisOfString as below, it runs forever (non-stop)
> although I have the stop criteria for it ??

Lex>> lisOfString ["test1","test2(test3)"]

> Thanks in advance.

> S.

>> On 6/17/06, Neil Mitchell <[EMAIL PROTECTED]> wrote:
>> > Hi
>> >
>> > On 6/18/06, Sara Kenedy <[EMAIL PROTECTED]> wrote:
>> > > Sorry, I am not clear at some point in your answer:
>> > >
>> > > 1) The function
>> > > lex :: String -> [(String,String)]
>> > > and
>> > > filter :: (a -> Bool) -> [a] -> [a]
>> > > So, I did not see how filter can use the list of tuple string of lex.
>> >
>> > You can write a function lexList, of type String -> [String], by
>> > repeatedly calling lex - its not too hard. Once you have this the
>> > filter will work.
>> >
>> > Thanks
>> >
>> > Neil
>> >
>>
> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe


-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to