к
Size: a a a
к
к
function getResult(
a: string,
b: string,
m: Map<string, number>
): number {
const a_ = m.get(a);
const b_ = m.get(b);
if (a_ != null && b != null) {
return a_ + b_;
} else {
return 0;
}
}ЗП
function getResult(
a: string,
b: string,
m: Map<string, number>
): number {
const a_ = m.get(a);
const b_ = m.get(b);
if (a_ != null && b != null) {
return a_ + b_;
} else {
return 0;
}
}m.has(a)к
к
AK
ЗП
AK
function getResult(
a: string,
b: string,
m: Map<string, number>
): number {
const a_ = m.get(a);
const b_ = m.get(b);
if (a_ != null && b != null) {
return a_ + b_;
} else {
return 0;
}
}к
AK
AK
к
ЗП
AK
Map это единственный вариант. "Лейблов" может быть какое угодно количество и они могут добавляться/удаляться (есть доступ к текущему состояний). Тип данных — известен в compile-time (в примере — Int). Может быть можно как-то на линзах "укоротить" такой код?ЗП
Map это единственный вариант. "Лейблов" может быть какое угодно количество и они могут добавляться/удаляться (есть доступ к текущему состояний). Тип данных — известен в compile-time (в примере — Int). Может быть можно как-то на линзах "укоротить" такой код?AK
ЗП
FoldableI.foldMapWithIndex (\i a -> guard (i `Foldable.elem` ["a", "b"]) (Additive a))
AK
FoldableI.foldMapWithIndex (\i a -> guard (i `Foldable.elem` ["a", "b"]) (Additive a))
AK
к
Map это единственный вариант. "Лейблов" может быть какое угодно количество и они могут добавляться/удаляться (есть доступ к текущему состояний). Тип данных — известен в compile-time (в примере — Int). Может быть можно как-то на линзах "укоротить" такой код?liftA2 (+) (m^.at a) (m^.at b)