Сортиране на списък от цели числа - принципен въпрос
В една от задачите, които решавах днес за списъци, се използва следният метод за сортиране:
sqrtNums.Sort((x,y)=>y.CompareTo(x));
Няма проблеми с кода. Работи безотказно при сортиране от по-голямо към по-малко число. Проблемът е в това, че подобен синтаксис не се помни лесно, особено ако не работиш често с него. В Гугъл също трудно намирам примери с точно този синтаксис. Какъв трябва да е подходът в случая? Трябва ли да се помни наизуст, в снипет ли да добави или има друг по-прост начин за сортиране?
Подсказката към задачата изглежда по следния начин:
squareNums.Sort((a, b) => b.CompareTo(a));
Като го погледна, ми става ясно как работи. Проблемът е, че когато ми потрябва, може да не се сетя да го напиша точно така, тъй като синтаксисът за момента ми е чужд.
JS не мога да кажа, че ми е любим. Даже свикнах повече със C#. Просто смятам, че ще имам по-добри шансове за работа с него в бъдеще, но да не подхващаме нова километрична тема в тази.
Лично на мен като ми се отдаде възможноста да пиша някакви lambdi, може би че вече посвиквам, и ми е интуитивно какво кога трябва да се подаде. Така, че смятам че след време ще изобщо няма да се замисляш.
Ами не е чак толкова неинтуитивен синтаксиса. Даже бих казал, че е по-близък до математически запис на функция, от колкото нормалните C# методи. (x,y) => (2 * x) / y е почти същото като f(x,y) = 2x/y :) Разбира се е най-близко до lamdba calculus