Size: a a a

Emacs — русскоговорящее сообщество

2021 November 07

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Сейчас заметил такой мем, что когда компилиться ядро, намного быстрее обновляется информация (сколько осталось загрузить гигов и эстимейт по времени) по загрузке видео с yt-dlp.
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
fun all_except_option (s1, sl) =
   let fun comp (s1, sl) = case sl of
       [] => []
     | slh::slt => if same_string(s1, slh)
                       then slt
                       else slh::comp(s1,slt)
   in
       if comp (s1,sl) = sl
       then NONE
       else SOME (comp(s1,sl))
   end
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
вот че получилось в итоге
источник

A ß in Emacs — русскоговорящее сообщество
на звездочку сделай comp с хвостовой рекурсией
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
это там дальше будет))
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Можно спойлер как оптимизируется хвтостовая рекурсия в Standart ML?
источник

A ß in Emacs — русскоговорящее сообщество
нормально
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
То есть что долже сделать программист, если я пойму твоё объяснение
источник

A ß in Emacs — русскоговорящее сообщество
поначалу там сложно было с каррированием, но сейчас и с ним нормально
источник

A ß in Emacs — русскоговорящее сообщество
написать comp так, чтобы стек не рос
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Хаскель всё равно круче, хотя ML вроде более лисповый какой-то
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
While most people rely on intuition for, “which calls are tail calls,” we can be more precise by defining tail
position recursively and saying a call is a tail call if it is in tail position. The definition has one part for each
kind of expression; here are several parts:•In fun f(x) = e, e is in tail position.
•If an expression is not in tail position, then none of its subexpressions are in tail position.
•If if e1 then e2 else e3 is in tail position, then e2 and e3 are in tail position (but not e1). (Case-
expressions are similar.)
•If let b1 ... bn in e end is in tail position, then e is in tail position (but no expressions in the
bindings are).
•Function-call arguments are not in tail position.
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
Tail recursion is common for functions that process lists, but the concept is more general. For example, here
are two implementations of the factorial function where the second one uses a tail-recursive helper function
so that it needs only a small constant amount of call-stack space:

fun fact1 n = if n=0 then 1 else n * fact1(n-1)

fun fact2 n =
let fun aux(n,acc) = if n=0 then acc else aux(n-1,acc*n)
in
aux(n,1)
end
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Прочел fun fact1 как "забавный факт 1" и fun fact2 как "забавный факт 2"
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
))))
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
да там курс просто интересный, 3 части, первая МЛ, вторая Рэкет, третья Руби и сравнение синтаксиса и семантики языков
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Хз зачем пишу, просто не понимаю странное решение при проектировании Mathlab связанное с тем, что челы подумали что классно использовать end как конец стейтментов по типу циклов и точку с запятой на конце, прям 0 смысла.
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
Надеюсь что в последний раз встречался с ним. Задачу кстати интересную решал -- составление расписания для 3 групп под предпочтения студентов.
источник

ДП

Дмитрий Поляков... in Emacs — русскоговорящее сообщество
А вот если бы прочёл 3-юю часть книги столярова, никакие бы курсы были бы не нужны.
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
а что за книга?
источник