Size: a a a

2017 May 02

AS

Akhmed Sheriev in F# Chat
объясните мне один момент пожалуйста если не трудно
источник

AS

Akhmed Sheriev in F# Chat
меня вот это всегда смущало
источник

AS

Akhmed Sheriev in F# Chat
type ContactInfo =
   | EmailOnly of EmailInfo
   | PostOnly of PostInfo
   | EmailPost of EmailInfo * PostInfo
источник

AS

Akhmed Sheriev in F# Chat
хорошо у нас только два значения
источник

AS

Akhmed Sheriev in F# Chat
и можно добавить целую строчку как комбинацию двух значений
источник

AS

Akhmed Sheriev in F# Chat
а если бы было три значения?
источник

AS

Akhmed Sheriev in F# Chat
добавить еще 3 строчки с парой каждого и 4-тую строчку как набор всех трех?
источник

AS

Akhmed Sheriev in F# Chat
есть более логичное решение?
источник

AS

Akhmed Sheriev in F# Chat
и того при трех значениях уже 7 строчек - при 4 даже считать не берусь )
источник

RM

Roman Melnikov in F# Chat
Всё зависит от задачи конечно, вдруг в твоем примере мооджно просто дополнительные типы ввести и не надо их комбинации.
источник

RM

Roman Melnikov in F# Chat
Но если же все же нужно работать с таким большим кол-вом контактной информации, то надо строить не DTO, как тут, а цельный агрегат.
источник

λ

λετучαя рыбα in F# Chat
Roman Melnikov
одностроник не нужен , но мне кажется что
let rec fib = function
| 0 | 1 -> 1
| n -> fib (n-1) + fib (n-2)

выглядит лучше
+
источник

λ

λετучαя рыбα in F# Chat
двачую за матч с function
источник

λ

λετучαя рыбα in F# Chat
оч красиво
источник

AS

Akhmed Sheriev in F# Chat
Да по закону Мура все что может случится случается. Вот этот пример всегда смущал что тот же Scott Wlaschin его приводит как крутую вещь в F# но везде и всегда показывает только с двумя значениями. А в реальной жизни далеко не два и даже не три значения приходится хранить как информацию о клиенте
источник

🦉

🦉Sova🦉 in F# Chat
Roman Melnikov
одностроник не нужен , но мне кажется что
let rec fib = function
| 0 | 1 -> 1
| n -> fib (n-1) + fib (n-2)

выглядит лучше
есть варик с бесконечной последовательностью)
источник

🦉

🦉Sova🦉 in F# Chat
let t = Seq.unfold (fun (u,v) -> Some(u,(u+v,u))) (1I,1I)
let fibI = t |> Seq.filter(fun x->x.ToString().Length=4) |> Seq.head
источник

🦉

🦉Sova🦉 in F# Chat
например)
источник

RM

Roman Melnikov in F# Chat
🦉Sova🦉
let t = Seq.unfold (fun (u,v) -> Some(u,(u+v,u))) (1I,1I)
let fibI = t |> Seq.filter(fun x->x.ToString().Length=4) |> Seq.head
уточним задачу, нужно показать "лаконичный код" )
источник

RM

Roman Melnikov in F# Chat
поэтмоу хоть код изначальный и гораздо лушче, но он не тот фибоначи который все знают с hello world'a )
источник