Search
Write a publication
Pull to refresh
4
0
Alex Egorov @skelantros

Scala Developer

Send message

Scala 3 Metaprogramming: реализация списка с известным на этапе компиляции размером

Level of difficultyMedium
Reading time13 min
Views1.7K

А что, если бы операции List[A].head и List[A].tail в Scala были бы безопасными на этапе компиляции?

В один ноябрьский вечер я задался этим вопросом, и, обладая нулевыми знаниями по метапрограммированию, принялся реализовывать список SList[A, N] с известным на этапе компиляции размером. Даже for-comprehension в итоге получилось реализовать!

Как это получилось сделать и какими средствами языка? Если рассказывать подробно - долгая история.

Хочу обрести мета-силу!

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
Scala