Size: a a a

2017 May 02

🦉

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

RM

Roman Melnikov in F# Chat
Roman Melnikov
let rec fib n a b = match n with

    | 0 -> a

    | 1 -> b

    | _ -> fib (n - 1) b (a + b)

как можно сократить?
это?
источник

🦉

🦉Sova🦉 in F# Chat
ну только без 0
источник

RM

Roman Melnikov in F# Chat
🦉Sova🦉
ну только без 0
точно вот что смущало, до 0 и не дойдет же.
источник

λ

λετучαя рыбα in F# Chat
но 0 могут подать на n
источник

λ

λετучαя рыбα in F# Chat
но можно | 0 | 1 ->
источник

λ

λετучαя рыбα in F# Chat
а, не) низя.
источник

AK

Arseniy Karpov in F# Chat
да можно сделать на сиквенсах опять же
источник

AK

Arseniy Karpov in F# Chat
можно через анфолд
источник

AK

Arseniy Karpov in F# Chat
толку-то в этом? F# операции над Seq никак не оптимизирует. и привет новые енумераторы почем зря
источник

AK

Arseniy Karpov in F# Chat
Arseniy Karpov
можно через анфолд
а онфолд - это каждое значение обернуть в option, который класс. то есть на каждое число - объект-компаньон в мусоре
источник

AK

Arseniy Karpov in F# Chat
так себе однострочники)
источник

🦉

🦉Sova🦉 in F# Chat
Просили лаконичный код...
источник

AK

Arseniy Karpov in F# Chat
да я просто к тому, что в F# упражнения на однострочниках большого прифита не несут.
источник

AK

Arseniy Karpov in F# Chat
хотя в свое время, я и еще пара знакомых развлекались тем, что решали прожект элер на разных языках, у кого компактней будет)
источник

Dv

Dr. Friedrich von Never in F# Chat
Akhmed Sheriev
Да по закону Мура все что может случится случается. Вот этот пример всегда смущал что тот же Scott Wlaschin его приводит как крутую вещь в F# но везде и всегда показывает только с двумя значениями. А в реальной жизни далеко не два и даже не три значения приходится хранить как информацию о клиенте
А что за случай, когда обязательно вводить тип-произведение вида «каждый кейс с каждым»? Как на других языках это решается? Может быть, тут вообще нужно другое решение? Давайте обсудим :)
источник

AS

Akhmed Sheriev in F# Chat
Dr. Friedrich von Never
А что за случай, когда обязательно вводить тип-произведение вида «каждый кейс с каждым»? Как на других языках это решается? Может быть, тут вообще нужно другое решение? Давайте обсудим :)
ну собственно именно об этом и был мой вопрос. Почему делается тип где перечислается выбор из трех значений где третий это комбинация двух первых?
источник

Dv

Dr. Friedrich von Never in F# Chat
С тем, что пример немного искусственный, я согласен.
источник

AS

Akhmed Sheriev in F# Chat
в императивном стиле это было бы что то вроде модели предметной области который выбрасывал бы исключение в негативных сценариях
источник

Dv

Dr. Friedrich von Never in F# Chat
В реальном коде такое можно встретить, но, пожалуй, не так уж и часто.
источник