• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

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
 
0.jpg


































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

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

Курс AD