• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Haskell

  • Автор темы akvarel
  • Дата начала
A

akvarel

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

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

Одно из заданий заключается в проверке двух слов , а именно имени и фамилии на заглавные буквы.
Т.е. если введены имя и фамилия с заглавной буквы, то программу выдают 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
 

SearcherSlava

Red Team
10.06.2017
943
1 259
BIT
113
0.jpg


































 
Последнее редактирование модератором:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!