Size: a a a

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

2020 October 25

P

PS in Язык программирования Julia / Julia programming language
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
julia> f(x,y) = x .+ y
f (generic function with 1 method)

julia> f.([1, 2, 3], Ref([4, 5, 6]))
3-element Array{Array{Int64,1},1}:
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
источник

АО

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

P

PS in Язык программирования Julia / Julia programming language
magic! Спасибо. Интересно, почему я этого раньше не видел
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну, иногда об этом говорят, но в целом да, этого как-то нет в мануалах и на этом не акцентируют внимание.
источник

АО

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

АО

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

АО

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

f(x,y) = x .+ y
y = collect(1:1000);
ThreadsX.map(x -> f(x, y), 1:1000000)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хаха, мы тут обсуждаем глобальные переменные, а в это время на discource вот такую конструкцию обсуждают:

julia> let x::Int = 0
          struct Foo
              x::Int
              function Foo()
                  x += 1
                  new(x)
              end
          end
      end

julia> Foo()
Foo(1)

julia> Foo()
Foo(2)

julia> Foo()
Foo(3)
источник

P

PS in Язык программирования Julia / Julia programming language
эээ, это как переменная класса в ruby?
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Кому-то захотелось "similar to C# static member"
источник

АО

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

АО

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Переменная класса здесь x внутри структуры. А вот let x выполняет функцию глобальной
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Функтора для полного счастья в этой конструкции не хватает. В значении фабрики объектов...
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Воскресное чтение: https://stopa.io/post/265

Просто очень изящно javascript превращают в лисп.
источник

MW

Merlin Wizard in Язык программирования Julia / Julia programming language
Подскажите пожалуйста, как организовывать код на Джулии? Ну всмысле в ООП есть классы, можно скрыть приватные методы - это инкапсуляция, а в Джулии как?
источник

АО

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

Код оборачивается в модули, все что из модулей не экспортируется, считается приватным.
источник

АО

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

module MyModule

include(“file1.jl”)
include(“file2.jl”)

export f

f(x) = g(x+1)
g(x) = 2x
end # module
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
f - экспортируемый метод, с которым можно работать вовне, g - внутренний метод.

В file1.jl и file2.jl могут быть ещё какие-то функции определены.
источник