Я недавно попал в ката для гольфа, которая попросила проверить, является ли буква заглавной или не более 9 символов.
Ответы пользователей были довольно пугающими (этот пример также работает с >
в обратном порядке):
f=s=>s<{}
f=c=>c<{}
f=_=>_<f
f=Z=>Z<f
Некоторые имена переменных не работают с f
:
f=a=>a<f
f=z=>z<f
Почему и какработает операторы <
и >
при сравнении функций с базовыми строками? Может быть, сравнение указателей?
Попробуйте сами:
// working
f1=s=>s<{}
f2=c=>c<{}
f3=_=>_<f3
f4=Z=>Z<f4
// not working
f5=s=>s<f5
console.log('f1', f1('A'))
console.log('f1', f1('a'))
console.log('f2', f2('A'))
console.log('f2', f2('a'))
console.log('f3', f3('A'))
console.log('f3', f3('a'))
console.log('f4', f4('A'))
console.log('f4', f4('a'))
console.log('f5', f5('A'))
console.log('f5', f5('a'))