JL Julia  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Функции и множественная диспетчеризация

Проверяет базовое понимание темы «Функции и множественная диспетчеризация»: чтение фрагментов, выбор корректной конструкции и объяснение результата без опоры на угадывание. Вопросы требуют читать код, находить границу применимости, выбирать проверяемую правку и отличать свойства Julia от поведения конкретного пакета. В тесте 20 вопросов: 12 заданий с кодом и 8 заданий с математической записью. Все формулировки рассчитаны на Julia 1.12.6; для сторонних библиотек используется явно названный API.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 55 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 20
Что именно следует из фрагмента с `area(x::Number) = x^2`?
m^*=\arg\max_{m\in M(f,x)}\operatorname{specificity}(m)
JuliaJulia · Методы
area(x::Number) = x^2
area(x::Tuple{<:Number,<:Number}) = x[1] * x[2]
area(x::AbstractVector) = sum(abs2, x)
@show area(3) area((2, 5)) area([1, 2])
Вопрос 2 из 20
Какой контрольный тест лучше всего проверит правило, связанное с `area(x::Number) = x^2`?
JuliaJulia · Методы
area(x::Number) = x^2
area(x::Tuple{<:Number,<:Number}) = x[1] * x[2]
area(x::AbstractVector) = sum(abs2, x)
@show area(3) area((2, 5)) area([1, 2])
Вопрос 3 из 20
Какое решение устраняет риск вокруг `area(x::Number) = x^2`, не меняя поведение на допустимых данных?
JuliaJulia · Методы
area(x::Number) = x^2
area(x::Tuple{<:Number,<:Number}) = x[1] * x[2]
area(x::AbstractVector) = sum(abs2, x)
@show area(3) area((2, 5)) area([1, 2])
Вопрос 4 из 20
Какой результат приёмочного теста подтвердит корректность участка с `area(x::Number) = x^2`?
m^*=\arg\max_{m\in M(f,x)}\operatorname{specificity}(m)
Вопрос 5 из 20
Какой тезис о `area(x::Number) = x^2` можно честно закрепить в справке?
Вопрос 6 из 20
Какое утверждение точнее всего объясняет участок с `function clamp01(x::Real)::Float64`?
f:(T_1,\ldots,T_n)\to R
JuliaJulia · Сигнатуры
function clamp01(x::Real)::Float64
    return min(max(x, zero(x)), one(x))
end
@show clamp01(3//2)
Вопрос 7 из 20
Что нужно подтвердить отдельным примером для `function clamp01(x::Real)::Float64`?
JuliaJulia · Сигнатуры
function clamp01(x::Real)::Float64
    return min(max(x, zero(x)), one(x))
end
@show clamp01(3//2)
Вопрос 8 из 20
Какое решение устраняет риск вокруг `function clamp01(x::Real)::Float64`, не меняя поведение на допустимых данных?
JuliaJulia · Сигнатуры
function clamp01(x::Real)::Float64
    return min(max(x, zero(x)), one(x))
end
@show clamp01(3//2)
Вопрос 9 из 20
После обновления Julia или пакета поведение участка с `function clamp01(x::Real)::Float64` изменилось. Какой критерий приёмки остаётся корректным?
f:(T_1,\ldots,T_n)\to R
Вопрос 10 из 20
Что следует сообщить пользователю библиотеки о поведении `function clamp01(x::Real)::Float64`?
Вопрос 11 из 20
Какой механизм Julia определяет поведение строки `route(x::Integer, y::Real; mode=:safe) = (:integer, mode)`?
\operatorname{dispatch}=D(T_1,\ldots,T_n)
JuliaJulia · Выбор метода
route(x::Integer, y::Real; mode=:safe) = (:integer, mode)
route(x::Real, y::Integer; mode=:safe) = (:real, mode)
@show route(1, 2.0)
Вопрос 12 из 20
Какой тест точнее всего зафиксирует границу поведения `route(x::Integer, y::Real; mode=:safe) = (:integer, mode)`?
JuliaJulia · Выбор метода
route(x::Integer, y::Real; mode=:safe) = (:integer, mode)
route(x::Real, y::Integer; mode=:safe) = (:real, mode)
@show route(1, 2.0)
Вопрос 13 из 20
Какую гарантию должна сохранить правка участка с `route(x::Integer, y::Real; mode=:safe) = (:integer, mode)`?
JuliaJulia · Выбор метода
route(x::Integer, y::Real; mode=:safe) = (:integer, mode)
route(x::Real, y::Integer; mode=:safe) = (:real, mode)
@show route(1, 2.0)
Вопрос 14 из 20
Две реализации участка с `route(x::Integer, y::Real; mode=:safe) = (:integer, mode)` совпадают на обычных данных. Что необходимо проверить перед выпуском?
\operatorname{dispatch}=D(T_1,\ldots,T_n)
Вопрос 15 из 20
Какое ограничение стоит прямо указать в документации к участку с `route(x::Integer, y::Real; mode=:safe) = (:integer, mode)`?
Вопрос 16 из 20
Что именно следует из фрагмента с `mergevalue(x::Integer, y::Real) = x + y`?
m_1\nprec m_2\land m_2\nprec m_1
JuliaJulia · Неоднозначность
mergevalue(x::Integer, y::Real) = x + y
mergevalue(x::Real, y::Integer) = x - y
# Какой метод нужен, чтобы вызов ниже был однозначным?
@show mergevalue(1, 2)
Вопрос 17 из 20
Какой тест точнее всего зафиксирует границу поведения `mergevalue(x::Integer, y::Real) = x + y`?
JuliaJulia · Неоднозначность
mergevalue(x::Integer, y::Real) = x + y
mergevalue(x::Real, y::Integer) = x - y
# Какой метод нужен, чтобы вызов ниже был однозначным?
@show mergevalue(1, 2)
Вопрос 18 из 20
Какое требование к `mergevalue(x::Integer, y::Real) = x + y` важнее удобной детали текущей реализации?
JuliaJulia · Неоднозначность
mergevalue(x::Integer, y::Real) = x + y
mergevalue(x::Real, y::Integer) = x - y
# Какой метод нужен, чтобы вызов ниже был однозначным?
@show mergevalue(1, 2)
Вопрос 19 из 20
При переносе кода с `mergevalue(x::Integer, y::Real) = x + y` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
m_1\nprec m_2\land m_2\nprec m_1
Вопрос 20 из 20
Что следует сообщить пользователю библиотеки о поведении `mergevalue(x::Integer, y::Real) = x + y`?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу