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

Типы, значения и переменные Julia

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 55 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 20
Что именно следует из фрагмента с `return (x, typeof(x))`?
T=\operatorname{promote\_type}(T_1,T_2)
JuliaJulia · Числовые типы
function mixed(a::Int8, b::UInt8)
    x = a + b
    return (x, typeof(x))
end
@show mixed(Int8(120), UInt8(10))
Вопрос 2 из 20
Какую проверку стоит добавить для участка с `return (x, typeof(x))`?
JuliaJulia · Числовые типы
function mixed(a::Int8, b::UInt8)
    x = a + b
    return (x, typeof(x))
end
@show mixed(Int8(120), UInt8(10))
Вопрос 3 из 20
Какое требование к `return (x, typeof(x))` важнее удобной детали текущей реализации?
JuliaJulia · Числовые типы
function mixed(a::Int8, b::UInt8)
    x = a + b
    return (x, typeof(x))
end
@show mixed(Int8(120), UInt8(10))
Вопрос 4 из 20
Две реализации участка с `return (x, typeof(x))` совпадают на обычных данных. Что необходимо проверить перед выпуском?
T=\operatorname{promote\_type}(T_1,T_2)
Вопрос 5 из 20
Какое утверждение о `return (x, typeof(x))` является переносимым правилом, а не особенностью одного запуска?
Вопрос 6 из 20
Какой механизм Julia определяет поведение строки `y = convert(Float32, x)`?
y=\operatorname{convert}(T,x)
JuliaJulia · Преобразования
function normalize(x)
    y = convert(Float32, x)
    z = BigFloat(y)
    return (y, z, y == z)
end
@show normalize(1//10)
Вопрос 7 из 20
Какую проверку стоит добавить для участка с `y = convert(Float32, x)`?
JuliaJulia · Преобразования
function normalize(x)
    y = convert(Float32, x)
    z = BigFloat(y)
    return (y, z, y == z)
end
@show normalize(1//10)
Вопрос 8 из 20
Что должно остаться истинным после рефакторинга участка с `y = convert(Float32, x)`?
JuliaJulia · Преобразования
function normalize(x)
    y = convert(Float32, x)
    z = BigFloat(y)
    return (y, z, y == z)
end
@show normalize(1//10)
Вопрос 9 из 20
Как проверить, что новая реализация `y = convert(Float32, x)` не изменила обещанное пользователю поведение?
y=\operatorname{convert}(T,x)
Вопрос 10 из 20
Какое утверждение о `y = convert(Float32, x)` является переносимым правилом, а не особенностью одного запуска?
Вопрос 11 из 20
Какое утверждение точнее всего объясняет участок с `const CACHE = Dict{String,Vector{Float64}}()`?
\texttt{const }n\Rightarrow n\text{ не перепривязывается}
JuliaJulia · Константы
const CACHE = Dict{String,Vector{Float64}}()
CACHE["train"] = [1.0, 2.0]
push!(CACHE["train"], 3.0)
@show CACHE
Вопрос 12 из 20
Какой тест точнее всего зафиксирует границу поведения `const CACHE = Dict{String,Vector{Float64}}()`?
JuliaJulia · Константы
const CACHE = Dict{String,Vector{Float64}}()
CACHE["train"] = [1.0, 2.0]
push!(CACHE["train"], 3.0)
@show CACHE
Вопрос 13 из 20
Какое решение устраняет риск вокруг `const`, не меняя поведение на допустимых данных?
JuliaJulia · Константы
const CACHE = Dict{String,Vector{Float64}}()
CACHE["train"] = [1.0, 2.0]
push!(CACHE["train"], 3.0)
@show CACHE
Вопрос 14 из 20
Как проверить, что новая реализация `const` не изменила обещанное пользователю поведение?
\texttt{const }n\Rightarrow n\text{ не перепривязывается}
Вопрос 15 из 20
Какое утверждение о `const CACHE = Dict{String,Vector{Float64}}()` является переносимым правилом, а не особенностью одного запуска?
Вопрос 16 из 20
Какое утверждение точнее всего объясняет участок с `y = x > 0 ? x : 0.0`?
x::T\mapsto f(x)::R(T)
JuliaJulia · Вывод типа
function score(x)
    y = x > 0 ? x : 0.0
    return y + one(x)
end
@show score(2) score(-2)
Вопрос 17 из 20
Какой эксперимент отличит настоящий механизм `y = x > 0 ? x : 0.0` от случайного результата одного запуска?
JuliaJulia · Вывод типа
function score(x)
    y = x > 0 ? x : 0.0
    return y + one(x)
end
@show score(2) score(-2)
Вопрос 18 из 20
Какой контракт следует закрепить при переработке строки `y = x > 0 ? x : 0.0`?
JuliaJulia · Вывод типа
function score(x)
    y = x > 0 ? x : 0.0
    return y + one(x)
end
@show score(2) score(-2)
Вопрос 19 из 20
Две реализации участка с `y = x > 0 ? x : 0.0` совпадают на обычных данных. Что необходимо проверить перед выпуском?
x::T\mapsto f(x)::R(T)
Вопрос 20 из 20
Что следует сообщить пользователю библиотеки о поведении `y = x > 0 ? x : 0.0`?

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

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

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

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