Haskell

Тема в разделе "Другие", создана пользователем akvarel, 25 ноя 2010.

  1. akvarel

    akvarel Гость

    Извините. я не знала, в какой топик написать мой вопрос про Хаскель

    Здравствуйте!
    Только вот вчера начали в университете проходить Хаскель.

    Одно из заданий заключается в проверке двух слов , а именно имени и фамилии на заглавные буквы.
    Т.е. если введены имя и фамилия с заглавной буквы, то программу выдают True или выражение на подобе "Верно" =). Если имя и фамилия введены маленькими или большими буквами, то программы выдает или False или что-нить на подобе "Напишите имя и фамилию с заглавных букв"

    Я что-то попыталась сделать уже. и у меня получилось пару вариантов. Пока что я остановилась только на одном из двух слов, т.е. написала вс только для ,например, имени, чтобы для начало было легче.

    Я написала три варианта и для каждого хаскель выдёт мне ошибку. Подскажите где мы что надо исправить и вобще в правильном ли я направлении думаю?

    Спасибо огромное!

    Для моего первого варианта Хаскель говорит
    Uebung5.hs:5:4: parse error on input `case'
    Код (Text):
    import Char
    isName :: String -> Char
    isName []
    isName p(x:xs)
    case of
    isUpper (head(x:xs)) && isLower (tail(x:xs)) -> putStrLn "You entered your name right"
    isUpper (head(x:xs)) && isUpper (tail(x:xs)) -> putStrLn "Enter only the begining letter large"
    isLower (head(x:xs)) && isUpper (tail(x:xs)) -> putStrLn "Enter only the begining letter large"
    isLower (head(x:xs)) && isLower (tail(x:xs)) -> putStrLn
    else if isLower (head(x:xs)) && isUpper (tail(x:xs)) )
    then False
    Для второго выдаёт:
    Uebung5.hs:5:4: parse error on input `if'

    Код (Text):
    import Char
    isName :: String -> Bool -> Bool
    isName []
    isName (x:xs)
    if isUpper (head(x:xs)) && isLower (tail(x:xs))
    then True
    else if isLower (head(x:xs)) && isUpper (tail(x:xs)) )
    then False



    Для 3его выдаёт вот это:
    Uebung5.hs:4:0:
    The type signature for `isName' lacks an accompanying binding


    Код (Text):
    import Char
    isName :: String -> Bool -> Bool
    isName []
    isName p(x:xs)
    |isUpper px = x : isName isLower p xs
    |otherwise = False
     
Загрузка...
Похожие Темы - Haskell
  1. Winter
    Ответов:
    0
    Просмотров:
    994

Поделиться этой страницей