Conversation
yurii-litvinov
left a comment
There was a problem hiding this comment.
.DS_Store не надо выкладывать, должно быть в .gitignore
BracketSequence.Tests/Program.fs
Outdated
| module Program = | ||
|
|
||
| [<EntryPoint>] | ||
| let main _ = 0 |
BracketSequence/BracketSequence.fs
Outdated
| bracket = ']' || bracket = ')' || bracket = '}' | ||
|
|
||
| let getRelativeOpen (bracket: char) = | ||
| List.find (fun x -> snd x = bracket) bracketList |> fst |
There was a problem hiding this comment.
Можно было bracketList сделать map-ом, тогда isOpen и isClose — это его Keys и Values, а эта штука работала бы за константу.
| <Project Sdk="Microsoft.NET.Sdk"> | ||
|
|
||
| <PropertyGroup> | ||
| <TargetFramework>net7.0</TargetFramework> |
BracketSequence/BracketSequence.fs
Outdated
| | _ -> false | ||
| else | ||
| internalBracketSequenceChecker tail bracketsStack | ||
| | [] -> if bracketsStack = [] then true else false |
PhoneBook/PhoneBook.fs
Outdated
|
|
||
| File.WriteAllText(phoneBaseFile, json) | ||
|
|
||
| let isContactInFile nameForFind phoneForFind phoneBaseFile = |
There was a problem hiding this comment.
"ForFind" не говорят. Говорят "ToFind" или что-то такое
PhoneBook/PhoneBook.fs
Outdated
| let writePhoneBaseToFile (phoneBase: Contact List) phoneBaseFile = | ||
| writeContactsToFile | ||
| (List.filter (fun contact -> not (isContactInFile contact.Name contact.Phone phoneBaseFile)) phoneBase) | ||
| phoneBaseFile | ||
|
|
||
| let writePhoneBaseFromFile (phoneBase: Contact List) phoneBaseFile = | ||
| let baseInFile = readContactsFromFile phoneBaseFile | ||
|
|
||
| let newPhoneBase = | ||
| phoneBase | ||
| @ (List.filter (fun contact -> not (isContactInBase contact.Name contact.Phone phoneBase)) baseInFile) | ||
|
|
||
| newPhoneBase |
There was a problem hiding this comment.
Зачем так извращаться и потом склеивать контакты в базе и контакты в файле в операции записи? Проще и логичнее было бы грузить всё, что есть в файле, в начале работы, и при сохранении просто затирать весь файл контактами из текущей базы (которая точно содержит всё, что было в файле, потому что мы его загрузили до этого).
PhoneBook/Program.fs
Outdated
| for contact in contactList do | ||
| printfn "%s" (stringContact contact) |
There was a problem hiding this comment.
Мутабельное состояние было ещё запрещено в этой задаче
PhoneBook/Program.fs
Outdated
| let addContactsToFile (phoneBase: Contact list) = | ||
| writePhoneBaseToFile phoneBase phoneBaseFile | ||
|
|
||
| let Run = |
There was a problem hiding this comment.
Функции называются со строчной
PointFree.Tests/PointFreeTest.fs
Outdated
| && (func'3 x l = func'4 x l) | ||
| && (func'4 x l = func'5 x l) | ||
|
|
||
| Check.Quick functionResAreEq |
There was a problem hiding this comment.
Опять-таки, Check.Quick не пойдёт
| let brSeqCorr = "(({})[])" | ||
| let brSeqIncorr = "((({})[])" |
There was a problem hiding this comment.
Не сокращайте имена
| let isOpen (bracket: char) = | ||
| bracket = '(' || bracket = '{' || bracket = '[' | ||
|
|
||
| let isClose (bracket: char) = | ||
| bracket = ']' || bracket = ')' || bracket = '}' |
There was a problem hiding this comment.
Есть же bracketList (который, правда, уже не List). А то если хочется новый вид скобок, надо будет тут поправить и там поправить, что неудобно
| let isContactInBase nameForFind phoneToFind phoneBase = | ||
| List.exists (fun contact -> contact.Name = nameForFind || contact.Phone = phoneToFind) phoneBase | ||
|
|
||
| let writePhoneBaseFromFile phoneBaseFile = readContactsFromFile phoneBaseFile |
| let isContactInFile nameForFind phoneToFind phoneBaseFile = | ||
| List.exists (fun contact -> contact.Name = nameForFind || contact.Phone = phoneToFind) | ||
| <| readContactsFromFile phoneBaseFile |
There was a problem hiding this comment.
Это, кажется, не используется нигде
| () | ||
| else | ||
| let json = | ||
| JsonConvert.SerializeObject((contacts @ (readContactsFromFile phoneBaseFile)), Formatting.Indented) |
There was a problem hiding this comment.
А зачем всё-таки их мерджить с содержимым файла перед записью? Мы ведь в contacts перед началом работы данные из файла уже зачитали, так что получатся дублирующиеся записи, нет?
| let addContactsToFile (phoneBase: Contact list) = | ||
| writeContactsToFile phoneBase phoneBaseFile | ||
|
|
||
| let run = |
There was a problem hiding this comment.
Оно как будто бы функция, но на самом деле значение типа unit. Выглядит странно (как будто у программы точки входа нет).
No description provided.