1. C# / Говнокод #19892

    +6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    public static List<string[]> split(string s)
        {
            bool ins = false;
            int no = 3;
            var L = new List<string>();
            var Res = new List<string[]>();
            var B = new StringBuilder();
            foreach (var c in s)
            {
                switch (c)
                {
                    case '§':
                        if (ins)
                        {
                            ins = false;
                            L.Add(B.ToString());
                            if (no == 0)
                            {
                                Res.Add(L.ToArray<string>());
                                L.Clear();
                                no = 3;
                            }
                        }
                        else
                        {
                            ins = true;
                            B.Clear();
                        }
                        break;
                    case '|':
                        if (!ins) { no--; }
                        else B.Append(c);
                        break;
                    default:
                        if (ins) B.Append(c);
                        break;
                }
            }
            return Res;
        }

    Судя по наименованиям - типичная лаба школьника.
    Однако, автор - Сошников - евангелист мелкософта. Тот самый, который F# пропагандирует (катается с одной и той же лекцией уже несколько лет по разным конференциям; и, кстати, принимают его всегда восторженно).
    Пруф: http://stackoverflow.com/a/36888673/5045688

    Запостил: koodeer, 27 Апреля 2016

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

    • > Судя по наименованиям - типичная лаба школьника.

      просто по быструхе собраный код.

      а говно это то что его конечный автомат использует `switch (ch) {` вместо `switch (state) {`. и состояние он тоже "забыл" сделать нормальное. как печально.
      Ответить
    • >> Тот самый, который F# пропагандирует (катается с одной и той же лекцией уже несколько лет по разным конференциям; и, кстати, принимают его всегда восторженно)
      >>

      слышал я его лекцию, после нее начал хаскелль изучать

      Суть метода изложи, лень разбираться
      Ответить
    • Ну и переменная no не нужна. Да и вместо того, чтобы использовать StringBuffer можно было увеличивать индекс до которого нужно substring сделать - всяко дешевле, чем по одному символу копировать. Ну и правильно написаный автомат не стал бы делать лишней проверки | символа внутри §§.
      Ответить
    • вы аватар его видели? у меня такое ощущение, что он только днем F# толкает , а ночью ему черный властелин толкает
      Ответить
    • - Я никому не скажу, Лёка, никогда! Лёка, и ты не говори, ладно, - его голос задрожал, - выходит, я пидор?.. Я скучал по тебе, что со мной твориться, Лёка?
      Ответить

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