ЙажаСценарий / Говнокод #27984 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
function some<T>(arr: T[], f: (it: T) => boolean) : boolean
{
	let r = false;
	for (const v of arr) if (r ||= f(v)) break;
	return r;
}

function main() {
    let str = [1.0, 2.0, 3.0];
    assert(some(str, (x => x == 2.0)), "sometrue");
    assert(!some(str, (x => x < 0)), "somefalse");
    print("done.");
}

Ну что скажите про мои "генерики" ? вам нравиться? А кто знает какой челенж я тут проходил пока написал эту часть компилятора... (даю подстказку - проблема в определении типов для лямбды)

Запостил: ASD_77 ASD_77, (Updated )

Комментарии (17) RSS

  • Когда нейросеть по сигнатуре с первого раза пишет реализацию красивее чем у опа.
    function some<T>(arr: T[], f: (it: T) => boolean) : boolean
    {
      for (it of arr) {
        if (f(it)) { return true }
      }
    
      return false
    }
    
    var array = [1, 2, 3]
    some(array, v => v % 2 === 0);
    some(array, v => v >= 2 && v <= 4);
    some(array, v => v === 'a');

    ИИ согласен, что var — лютая годнота.
    Ответить
    • > красивее чем у опа.

      Твой код оскорбляет одновозвратников.
      Ответить
        • на получай ....
          function some<T>(arr: T[], f: (it: T) => boolean) 
          {
          	let r = false;
          	for (const v of arr)  !r && (r ||= f(v));
          	return r;
          }
          
          function main() {
              let str = [1.0, 2.0, 3.0];
              assert(some(str, (x => x == 2.0)), "sometrue");
              assert(!some(str, (x => x < 0)), "somefalse");
              print("done.");
          }
          Ответить
          • Может быть r ||= (!r && f(v)), чтобы ||= посреди выражения не торчало?
            Ответить
            • Так, а сам ||= поди тоже short-circuit умеет и не вызывает правую часть лишний раз?

              Т.е. просто r ||= f(v)
              Ответить
        • Соцсеть любителей одного return?

          А против соцсетей структурного программирования у тебя ничего нет??
          Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8