1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Haskell

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

  1. akvarel

    akvarel Гость

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

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

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

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

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

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

    Для моего первого варианта Хаскель говорит
    Uebung5.hs:5:4: parse error on input `case'
    Код:
    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'

    Код:
    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


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

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