Size: a a a

Elm Lang сообщество разработчиков

2017 November 04

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
На хабре не любят, когда автор ещё где-то публикует тот же материал :)
источник

k

kalki in Elm Lang сообщество разработчиков
Да ладно, не знал
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
За такое банят, закрывают доступ на месяцы и прочие репресии устраивают :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Тирания
источник

k

kalki in Elm Lang сообщество разработчиков
И это прям прописано где-то или просто так принято?
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Прописано :)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
"Бла-бла не разрешается размещение того же материала на других ресурсах"
источник

k

kalki in Elm Lang сообщество разработчиков
Фи, ну тогда нахер хабр
источник

Вл

В ладу in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Короче говоря на верхнем уровне проще иметь классический рекорд с подмоделями страниц и enum для выбора текущей страницы. И view/update с паттернматчингом по этому enum
ну да enum очевидный вариант. а почему он изначально отметается?
Хочется на операторах их компоновать?
вообще если рассуждать про отладку то всё таки удобнее бы запускать под каждую страницу отдельную program
тогда можно дебажить сразу стартуя со своей страницы (хотя и так initial state можно задать с этой страницей)
ну в общем удобней локальная отладка. поменьше выбор экшонов
источник
2017 November 05

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
В ладу
ну да enum очевидный вариант. а почему он изначально отметается?
Хочется на операторах их компоновать?
вообще если рассуждать про отладку то всё таки удобнее бы запускать под каждую страницу отдельную program
тогда можно дебажить сразу стартуя со своей страницы (хотя и так initial state можно задать с этой страницей)
ну в общем удобней локальная отладка. поменьше выбор экшонов
С enum'ом не покомбинируешь уже. Тут нужны type level словари.
А в идеале - возможность расширять анонимный рекорд на выходе и втаскивать символ с value level на type level. Это бы позволило писать такое:
extendWith :
   (symbol, a)
   -> {record}
   -> {record | symbol : a}
extendWith (k, v) record = { record | 'k = v }

(.:) : { rec | symbol : a } -> symbol -> a
(.:) = ... -- это была бы встроенная операция

init =
   { home = HomePage.init
   , currentPage = 'home }
       |> extendWith ( 'books, BooksPage.init )
       |> extendWith ( 'users, UsersPage.init )

view model =
   let
       views = { home = HomePage.view, ... }
   in
       (views .: model.currentPage)
           (model .: model.currentPage)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Вот если отойти от идеи хранения состояний всех страниц в виде
{ pageHome : ...
, pageBooks : ...
, pageUsers : ...
}

к хранению состояния только текущей страницы
= PageHome PageHome.Model
| PageBooks PageBooks.Model
| PageUsers PageUsers.Model

то такое уже можно закодировать в виде
Either
   PageHome.Model
   ( Either
       PageBooks.Model
       PageUsers.Model
   )

Тогда вьюхи и апдейты будут лежать в деревьях
((v1, v2), v3)

А текущая страница будет кодироваться в виде
Right (Left submodel)

(это выбрана PageBooks). И этот же "путь" будет доставать соответствующую вьюху и соответствующий апдейт. Собственно, таким образом мы просто закодируем произвольный тип-сумму (enum) в виде Tuple и Either - такой "паттерн" даже есть :)
источник

AW

Arthur Welf in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
На хабре не любят, когда автор ещё где-то публикует тот же материал :)
Если текст на англ. и выложен, скажем, на Medium, то на Хабре оформляешь его как перевод - и никаких проблем
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Речь была именно о размещении того же (не перевода, а буквально) материала в другом месте
источник

AW

Arthur Welf in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Речь была именно о размещении того же (не перевода, а буквально) материала в другом месте
Я размещал тот же материал и на Хабре, и в блоге проекта - и тоже никаких санкций не было. На Хабре я просто публиковал сначала, а в блоге - спустя пол дня
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Насколько я понял, решение о допустимости принимают каждый раз независимо, так что тут "как повезёт". В целом мне не нравится, как TM относятся к авторам и их интеллектуальным правам
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
В ладу
@astynax у тебя как-то реквестили пример многостраничного приложения с относительно независимыми страницами, ты не выкладывал ещё?
https://astynax.github.io/tea-combine/examples/pages.html - странички с переключением. Состояние всех страниц сохраняется (сорцы: https://github.com/astynax/tea-combine/blob/master/examples/pages)
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Только надо будет ещё и эти комбинаторы утащить в либу
источник

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Получилось даже не совсем ужасно :)
источник
2017 November 08

AP

Aleksei (astynax) Pirogov in Elm Lang сообщество разработчиков
Что-то народу прибывает, но все молчат. Вбросьте, чтоли чего - хоть пофлудим :)
источник

к

кана in Elm Lang сообщество разработчиков
хаскель не нужон, слишком много возможностей
источник