💡 Инструкция: Выберите один ответ из пяти. На работу отведено 55 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 20
Какое объяснение для `xs = Union{Missing,Float64}[1.0, missing, 3.0]` выдержит проверку на другом допустимом входе?
x\in T\cup\{\mathrm{missing}\}
Julia Julia · Смысл значений Копировать
xs = Union{Missing,Float64}[1.0, missing, 3.0]
ys = xs .* 2
@show ys coalesce.(ys, 0.0)
Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
`missing` и `nothing` являются двумя написаниями одного значения и одинаково распространяются через арифметику.
`skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
`missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Вопрос 2 из 20
Какой эксперимент отличит настоящий механизм `xs = Union{Missing,Float64}[1.0, missing, 3.0]` от случайного результата одного запуска?
Julia Julia · Смысл значений Копировать
xs = Union{Missing,Float64}[1.0, missing, 3.0]
ys = xs .* 2
@show ys coalesce.(ys, 0.0)
Проверить на отдельном примере, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Проверить на отдельном примере, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Проверить на отдельном примере, что `missing` и `nothing` являются двумя написаниями одного значения и одинаково распространяются через арифметику.
Проверить на отдельном примере, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Проверить на отдельном примере, что `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Вопрос 3 из 20
Что должно остаться истинным после рефакторинга участка с `xs = Union{Missing,Float64}[1.0, missing, 3.0]`?
Julia Julia · Смысл значений Копировать
xs = Union{Missing,Float64}[1.0, missing, 3.0]
ys = xs .* 2
@show ys coalesce.(ys, 0.0)
Сохранить в реализации правило: `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Сохранить в реализации правило: `missing` и `nothing` являются двумя написаниями одного значения и одинаково распространяются через арифметику.
Сохранить в реализации правило: Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Сохранить в реализации правило: Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Сохранить в реализации правило: `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Вопрос 4 из 20
Какой результат приёмочного теста подтвердит корректность участка с `xs = Union{Missing,Float64}[1.0, missing, 3.0]`?
x\in T\cup\{\mathrm{missing}\}
Приёмка должна подтвердить, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Приёмка должна подтвердить, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Приёмка должна подтвердить, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Приёмка должна подтвердить, что `missing` и `nothing` являются двумя написаниями одного значения и одинаково распространяются через арифметику.
Приёмка должна подтвердить, что `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Вопрос 6 из 20
Какое объяснение для `false & missing,` выдержит проверку на другом допустимом входе?
\mathrm{false}\land\mathrm{missing}=\mathrm{false}
Julia Julia · Трёхзначная логика Копировать
cases = (
false & missing,
true | missing,
false | missing,
true & missing,
)
@show cases
Почти каждая логическая операция с `missing` возвращает `missing`, даже когда второй операнд уже определяет результат.
Для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
`skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Вопрос 7 из 20
Какую проверку стоит добавить для участка с `missing`?
Julia Julia · Трёхзначная логика Копировать
cases = (
false & missing,
true | missing,
false | missing,
true & missing,
)
@show cases
Проверить на отдельном примере, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Проверить на отдельном примере, что для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Проверить на отдельном примере, что почти каждая логическая операция с `missing` возвращает `missing`, даже когда второй операнд уже определяет результат.
Проверить на отдельном примере, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Проверить на отдельном примере, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Вопрос 8 из 20
Какой контракт следует закрепить при переработке строки `false & missing,`?
Julia Julia · Трёхзначная логика Копировать
cases = (
false & missing,
true | missing,
false | missing,
true & missing,
)
@show cases
Сохранить в реализации правило: Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Сохранить в реализации правило: Для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Сохранить в реализации правило: `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Сохранить в реализации правило: Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Сохранить в реализации правило: Почти каждая логическая операция с `missing` возвращает `missing`, даже когда второй операнд уже определяет результат.
Вопрос 9 из 20
При переносе кода с `false & missing,` в библиотеку какой критерий нельзя заменять впечатлением «пример работает»?
\mathrm{false}\land\mathrm{missing}=\mathrm{false}
Приёмка должна подтвердить, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Приёмка должна подтвердить, что для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Приёмка должна подтвердить, что почти каждая логическая операция с `missing` возвращает `missing`, даже когда второй операнд уже определяет результат.
Приёмка должна подтвердить, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Приёмка должна подтвердить, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Вопрос 12 из 20
Что нужно подтвердить отдельным примером для `it = skipmissing(xs)`?
Julia Julia · Пропуск неизвестных значений через skipmissing Копировать
xs = Union{Missing,Int}[1, missing, 3, missing]
it = skipmissing(xs)
@show collect(it) sum(it) xs
Проверить на отдельном примере, что `missing` и `nothing` являются двумя написаниями одного значения и одинаково распространяются через арифметику.
Проверить на отдельном примере, что почти каждая логическая операция с `missing` возвращает `missing`, даже когда второй операнд уже определяет результат.
Проверить на отдельном примере, что для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Проверить на отдельном примере, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Проверить на отдельном примере, что `skipmissing` удаляет пропуски из исходного массива и меняет его тип на коллекцию без `Missing`.
Вопрос 16 из 20
Какое объяснение для `ismissing(x) && return missing` выдержит проверку на другом допустимом входе?
R=T\cup\{\mathrm{missing},\mathrm{nothing}\}
Julia Julia · Безопасные API Копировать
lookup(d, key) = get(d, key, nothing)
function parse_measurement(x::Union{Missing,String})
ismissing(x) && return missing
y = tryparse(Float64, x)
y === nothing && throw(ArgumentError("bad measurement"))
return y
end
`skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
`missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Вопрос 17 из 20
Какой эксперимент отличит настоящий механизм `ismissing(x) && return missing` от случайного результата одного запуска?
Julia Julia · Безопасные API Копировать
lookup(d, key) = get(d, key, nothing)
function parse_measurement(x::Union{Missing,String})
ismissing(x) && return missing
y = tryparse(Float64, x)
y === nothing && throw(ArgumentError("bad measurement"))
return y
end
Проверить на отдельном примере, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Проверить на отдельном примере, что для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Проверить на отдельном примере, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Проверить на отдельном примере, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Проверить на отдельном примере, что `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Вопрос 18 из 20
Какой контракт следует закрепить при переработке строки `ismissing(x) && return missing`?
Julia Julia · Безопасные API Копировать
lookup(d, key) = get(d, key, nothing)
function parse_measurement(x::Union{Missing,String})
ismissing(x) && return missing
y = tryparse(Float64, x)
y === nothing && throw(ArgumentError("bad measurement"))
return y
end
Сохранить в реализации правило: Логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Сохранить в реализации правило: `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Сохранить в реализации правило: `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Сохранить в реализации правило: Безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Сохранить в реализации правило: Для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.
Вопрос 19 из 20
Какой результат приёмочного теста подтвердит корректность участка с `ismissing(x) && return missing`?
R=T\cup\{\mathrm{missing},\mathrm{nothing}\}
Приёмка должна подтвердить, что логические операции с `missing` следуют трёхзначной логике: результат иногда можно определить без знания пропуска, но `if missing` недопустим.
Приёмка должна подтвердить, что безопасный API явно решает, допускает ли он `missing`, `nothing` или исключение; объединение этих состояний в один неописанный сигнал затрудняет обработку ошибок.
Приёмка должна подтвердить, что `skipmissing` предоставляет итератор по известным значениям, не меняя исходную коллекцию и не объясняя причину пропусков.
Приёмка должна подтвердить, что `missing` означает неизвестное значение данных и распространяется через многие вычисления, а `nothing` обычно обозначает отсутствие полезного результата или пустой возврат.
Приёмка должна подтвердить, что для простоты публичный API может возвращать `missing`, `nothing` или исключение в одной ситуации без описанного различия.