Size: a a a

Язык программирования Julia / Julia programming language

2020 June 26

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ага, понятно.
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Теперь задачка. Я пытаюсь решить упражнение с exercism. Там надо транспонировать массив строк.
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Хм, а cur можно сделать еще круче :D
cur(op, args...) = (rest...) -> op(args..., rest...)
источник

A

Arthur in Язык программирования Julia / Julia programming language
Если я правильно понимаю, cur(map, string) можно заменить на map \circ string
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Arthur
Если я правильно понимаю, cur(map, string) можно заменить на map \circ string
Нет же
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну круто, раз работает.
Из минусов то, что не type stable получилось, поэтому в tight loop такое лучше не запускать.
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
map \circ string – это функция, которая сначала применит string к аргументам, а потом map
источник

A

Arthur in Язык программирования Julia / Julia programming language
Блин, да, я туплю
источник

A

Arthur in Язык программирования Julia / Julia programming language
Type stable currying ощущение, что можно сделать через структуры
источник

A

Arthur in Язык программирования Julia / Julia programming language
Правда для разной арности надо будет писать руками все
источник

A

Arthur in Язык программирования Julia / Julia programming language
И скорее всего заранее типы зафиксировать
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Это тогда будет по curry под каждый тип
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Вот так ещё можно
map(x -> string.(x), [[1, 2, 3], [4, 5, 6]]) |> x -> collect(join(y) for y in zip(x...))
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Тот же результат выдаёт, хотя наверное не так общно.
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Андрей Оськин
Вот так ещё можно
map(x -> string.(x), [[1, 2, 3], [4, 5, 6]]) |> x -> collect(join(y) for y in zip(x...))
Выглядит неприятно
источник

A

Arthur in Язык программирования Julia / Julia programming language
Хороший Лисичко
Это тогда будет по curry под каждый тип
Структура будет одна, в параметрах типа будут типы оставшихся аргументов
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну уж 😊) Кому как 😊 Меня apply и cur пугают 😊
источник

ХЛ

Хороший Лисичко... in Язык программирования Julia / Julia programming language
Arthur
Структура будет одна, в параметрах типа будут типы оставшихся аргументов
Но их же из функции вычислять надо
Julia такое умеет?
источник

A

Arthur in Язык программирования Julia / Julia programming language
В общем случае нет, поэтому надо знать их заранее
источник

A

Arthur in Язык программирования Julia / Julia programming language
Либо абстрактные типы в членах структуры
источник