/ / Визначення довжини списку в Haskell - списку, haskell

Визначення часу перебування списку в Haskell - список, haskell

Так що я "новачок в Haskell і я намагаюся визначити список, який становить максимум 4 елемента довго. до сих пір у мене type IntL = [Int,Int,Int,Int] але я думав, що має бути кращий / правильний спосіб зробити це. Є там?

Відповіді:

6 за відповідь № 1

Це проблематично в Haskell, тому що розміри кодування фантомних типів потребують належної підтримки компіляторів (інакше це дуже дратує використання), і тип nats в GHC з'явився дещо недавно.

Це сумно бібліотеки існувати, тільки щоб дати вам ідею.

Крім того, просто використовуйте кортеж.


5 для відповіді № 2

це може виглядати нерозумно, і це, звичайно, не масштабується, але що

data Max4 a
= Empty
| One a
| Two a a
| Three a a a
| Four a a a a

з type IntL = Max4 Int? Це основне, ви повинні бути в змозі зрозуміти його, і ви можете багато чому навчитися, виконуючи операції над ним.


-1 для відповіді № 3

Основні типи Haskell не настільки потужнікодувати максимальну довжину списку. Для цього ви повинні розраховувати на такі розширення, як GADT і Phantom Types, але це не просто.

Якщо ви дійсно новачок, я раджу вам дізнатися інші основні поняття, як Монади, IO та інші ідіоми.

Цей сайт є дуже хорошим читанням для початкового підходу до Haskell:

http://learnyouahaskell.com