Повторю то, что писал в какой-то ветке про расширения в C#: расширения позволяют придавать поведение интерфейсам, для чего (а именно для LINQ) в первую очередь и были введены в C#. Например, можно придать дефолтное поведение каким-то методам:
public interface IPagination<TItem>
{
IEnumerable<TItem> GetPage(int offset, int size);
}
public static class PaginationExtension
{
public static IEnumerable<TItem> GetPage(this IPagination<TItem> pagination, int offset) => pagination.GetPage(offset, 100);
}
Полагаю, аналогично можно их использовать и в Kotlin.
Little Big Adventure, но вторая часть! Няяяя… Волшебная, сказочная, добрая, моральная, практически опен-ворлдная, с чумовой музыкой и роликами… сейчас расплачусь))
Регулярно мониторю интернеты на предмет сиквелов-римейков — ничего нет. А я б вписался в краудфандинг с удовольствием! Эх, а может самому уже запилить на старости лет?)
Но менее известно, что в высокоуровневых языках это Haskell. В Scala/F#/Idris/Elm/Elexir/… тусовках если не знаешь, на чем пишет твой визави — пиши на хаскелле, не ошибешься.
Полагаю, аналогично можно их использовать и в Kotlin.
Регулярно мониторю интернеты на предмет сиквелов-римейков — ничего нет. А я б вписался в краудфандинг с удовольствием! Эх, а может самому уже запилить на старости лет?)
Сорри за оффтоп, не сдержался)))
Почему не OCaml? Сами же пишете «ML языки». :)