Поэтому я решил стиснуть зубы и портировать небольшой код с js на fsharp. После нескольких лет стремления перейти от традиционной языковой базы ООП к чему-то… ааа, к чему-нибудь… лучше, я решил перестать немного дурачиться и, как я сделал с OCaml/Reason в 2017 году, получить некоторый опыт работы с F# и точнее Fable на Node.

Мои мотивы, возможно, несколько личные, может быть, даже эгоистичные, но, хотя я ценю плюсы большинства различных языков, на которые я забрел (Clojure, Haskell, Elm, Purescript,…), я думаю, что даже попробовал Эликсир, чем я был на самом деле искал очень простой синтаксис в стиле ML без бородавок (по крайней мере, не настолько, чтобы заставить меня прыгать при чтении или написании кода), достаточно хорошую систему типов и отличное взаимодействие js. Так вот с F#.

Я был на первой Fable Conf в 2017 году в Бордо, так что уже познакомился с некоторыми участниками сообщества. Мой опыт возвращения сейчас в начале 2019 года действительно замечательный! Я особенно благодарен Максиму Мангелю за поддержку Fable Gitter.

Итак, вот начало переноса моей небольшой кодовой базы. Я начал с этого кусочка js, который считывает некоторые данные GeoJSON и передает их в Fuse.js для последующего поиска.

А вот порт F#, который, я надеюсь, работает так же. Преимущество заключается в том, что json теперь проверяется, и в этом процессе я сохраняю только те данные, которые меня интересуют, тем самым уменьшая объем памяти для этой обработки. Кроме того, я избавился от зависимости от помощников Turf.

Немного более многословно, но компилятор меня поддержал. Я надеюсь написать что-то еще, поскольку мое путешествие по обучению продолжается.