1. Куча / Говнокод #21624

    −12

    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
    Python: What if everything was a dict?
    Java: What if everything was an object?
    JavaScript: What if everything was a dict *and* an object?
    C: What if everything was a pointer?
    APL: What if everything was an array?
    Tcl: What if everything was a string?
    Prolog: What if everything was a term?
    LISP: What if everything was a pair?
    Scheme: What if everything was a function?
    Haskell: What if everything was a monad?
    Assembly: What if everything was a register?
    Coq: What if everything was a type/proposition?
    COBOL: WHAT IF EVERYTHING WAS UPPERCASE?
    C#: What if everything was like Java, but different?
    Ruby: What if everything was monkey patched?
    Pascal: BEGIN What if everything was structured? END
    C++: What if we added everything to the language?
    C++11: What if we forgot to stop adding stuff?
    Rust: What if garbage collection didn't exist?
    Go: What if we tried designing C a second time?
    Perl: What if shell, sed, and awk were one language?
    Perl6: What if we took the joke too far?
    PHP: What if we wanted to make SQL injection easier?
    VB: What if we wanted to allow anyone to program?
    VB.NET: What if we wanted to stop them again?
    Forth: What if everything was a stack?
    ColorForth: What if the stack was green?
    PostScript: What if everything was printed at 600dpi?
    XSLT: What if everything was an XML element?
    Make: What if everything was a dependency?
    m4: What if everything was incomprehensibly quoted?
    Scala: What if Haskell ran on the JVM?
    Clojure: What if LISP ran on the JVM?
    Lua: What if game developers got tired of C++?
    Mathematica: What if Stephen Wolfram invented everything?
    Malbolge: What if there is no god?

    Запостил: j123123, 01 Ноября 2016

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

    • Whitespace: What if everything                    ?
      Ответить
      • Говорят, новая версия ГК будет переписана на Whitespace.
        Уже сейчас для поклонников этого чудесного языке не действует ограничение в 2к символов.
        Ответить
    • > Java: What if everything was an object?

      except byte, short, int, long, float, double, boolean?
      Ответить
      • показать все, что скрытоДа, это знатный проёб.
        Хорошо что в .NET этой проблемы нет)
        Ответить
      • and char :)
        Ответить
      • а что же это тогда если не объект?
        Ответить
        • "примитив"
          Ответить
          • помнится мне, java говном поливали за то, что там отсутствуют структуры.
            а в чем разница между примитивами в объектами в java? с c# byte, int, etc это структуры, и они в стеке не хранятся например, и иммутаббельныые, ну и другие хитрости есть.
            Ответить
            • > а в чем разница между примитивами в объектами в java?

              Примитивы передаются по значению, объекты — по ссылке. В общем, это примерно как структуры в C#, только их всего 8 и новые объявлять нельзя.

              > они в стеке не хранятся например, и иммутаббельныые
              Подозреваю, что всё же хранятся, и композитные структуры всё-же мутабельные по-умолчанию.
              Ответить
              • показать все, что скрытоКроме того у примитивов нет методов, и чтобы положить их в коллекцию нужно обернуть их во враппер:)

                В C#, на самом деле, почти тоже самое, просто у valuetypes там есть методы (это сахар), и wrap/unwrap делается куда прозрачнее.

                Так что лохыч в лужу газирнул немнтго
                Ответить
              • >В общем, это примерно как структуры в C#, только их всего 8 и новые объявлять нельзя.
                в принципе этого достаточно.
                >Подозреваю, что всё же хранятся, и композитные структуры всё-же мутабельные по-умолчанию.
                если я правильно вкурил доку, то не совсем так. структуры не хранятся в управляемой куче, они хранятся в стеке и если ты меняешь значение поля, то он создает новую структуру на месте старой.
                например, если создать ListL<> моих структур, и через foreach их менять, то он выдаст тебе тебе ошибку компиляции.
                public struct A {
                    public int _a { get; set; }
                    public A(int a) {
                        _a = a;
                    }
                    public static void Main(String[] args) {
                        List<A> lst = new List<A>();
                        lst.Add(new A(1));
                        lst.Add(new A(2));
                        foreach(A a in lst) {
                           a._a++;
                        }
                        for(int i = 0; i < lst.Count; i++) {
                            lst[i]._a++;
                        }
                        for(int i = 0; i < lst.Count; i++) {
                            lst[i] = new A(lst[i]._a + 1);
                        }
                    }
                }
                работает только последний пример.
                но вообще, в принципе, структуру можно загнать в кучу.
                если я напишу
                A a = new A(1);
                object aObj = (object)a;
                то тут он упакует мою структуру, и поместит ее в памяти как ссылочный тип, а если я приведу ее обратно к ее типу, то он распакует ее, и вернет копию.
                короче, есть профит использования структур по части производительности и потребления памяти, но с этим надо уметь работать.
                Ответить
                • показать все, что скрытопипец, ну и фигня этот ваш сисярп
                  Ответить
                • > если создать ListL<> моих структур

                  Это какие-то листопроблемы. С массивом всё работает.
                  Ответить
                  • public class List<T> : IList<T>, System.Collections.IList, IReadOnlyList<T>
                        { 
                            private T[] _items;
                            public T this[int index] {
                                get {
                                    // Following trick can reduce the range check by one
                                    if ((uint) index >= (uint)_size) {
                                        ThrowHelper.ThrowArgumentOutOfRangeException();
                                    }
                                    Contract.EndContractBlock();
                                    return _items[index]; 
                                }
                     
                                set {
                                    if ((uint) index >= (uint)_size) {
                                        ThrowHelper.ThrowArgumentOutOfRangeException();
                                    }
                                    Contract.EndContractBlock();
                                    _items[index] = value;
                                    _version++;
                                }
                            }
                    }
                    в принципе, если так разобраться, то это тупо обертка для массива.
                    с массивом в foreach тоже не работает. все дело в том, массив хранит значения структур, а когда они упаковываются в объект, то в стеке создается новый объект, при распаковке которого возвращается копия объекта, а не сам объект.
                    public Object Current {
                                    get {
                                        if (index < startIndex) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumNotStarted));
                                        if (_complete) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumEnded));
                                        return array.GetValue(_indices);
                                    }
                                }
                    Ответить
                    • > с массивом в foreach тоже не работает
                      Ну это и ежу понятно, ты же пишешь foreach (A a in myarray). Цикл копирует значения объектов в a и ты меняешь переменную цикла.
                      Т.е. структуры всё-же мутабельные, надо просто постараться, чтобы не сделать лишних копий.
                      Ответить
        • показать все, что скрытоэто типы
          Ответить
        • показать все, что скрытопримитив
          Ответить
      • Великий пост. Едут в одном купе поп и верующий. Верующий достаёт обед - чай, каша, рыба. Через некоторое время поп тоже решил подкрепиться и ставит на столик свою еду. Верующий смотрит - а там отбивная. Спрашивает: "Как же так, батюшка? Ведь пост же?.." А батюшка покряхтел, подумал, да и говорит отбивной: "Нарекаю тебя рыбой!"
        Ответить
    • Где тут говнокод, %username%?
      Ответить
    • > Scala: What if Haskell ran on the JVM?
      лолшто
      Ответить
      • > Scala: What if Haskell OCaml with objects instead of modules and interfaces instead of module types ran on the JVM?

        fixed
        Ответить
    • What if OP was straight?
      Ответить
    • показать все, что скрытоJ: What is everything was a config?
      Ответить
    • xkcd: What If?
      Ответить
    • опять блядь полетели офисные смехуечки
      Ответить
    • показать все, что скрытоСоберем для Вас по интернет клиентские базы данных для Вашего Бизнеса Узнайте подробнее по Email: [email protected] Тел +79139230330(wiber/whatsapp/telegram) Skype: prodawez390
      Ответить
    • показать все, что скрытоКЛИЕНТСКИЕ БАЗЫ для всех кто много продает (для юрлиц и физлиц)! Узнайте подробнее! Skype: prodawez390 Email: [email protected] Whatsapp: +79139230330 Viber: +79139230330 Telegram: +79139230330 WWW: http://xurl.es/PR0DAWEZ
      Ответить

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