1. Kotlin / Говнокод #27030

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    object Cорок {
        infix fun тысяч(b: String) = this
        infix fun в(a: String) = this
        infix fun сунули(a: String) = this
    }
    
    fun main() {
        Cорок тысяч "обезъян" в "жопу" сунули "банан"
    }

    Запостил: DypHuu_niBEHb, 15 Октября 2020

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

    • Инфиксные функции в коко завезли, чтобы пилить DSLи.
      Стараются выгнать groovy из gradle.

      Что думаете?
      Ответить
      • Мне не нравится как это выглядит. Какое-то инфиксное веселье получается, а я вообще-то серьёзный, деловой человек, важными вещами занимаюсь, мне не до веселья обычно.

        Если раньше fun хоть и с усилием, но воспринимался как function, то сейчас, когда первое слово написано полностью, то и второе слово хочется прочитать не как сокращение )))
        Ответить
      • Принимают только один аргумент, так неинтересно
        Ответить
    • Обжектив си какое-то.
      [Сорок тысяч: "обезьян" в: "жопу" сунули: "банан"]
      Ответить
      • собачки перед строчками забыл. У тебя указатель на чар, а с собачкой был бы NSString или как там
        Ответить
    • Кастомные операторы?

      Давно есть в Свифте
      Ответить
    • Ответить
    • А infix fun << можно? Или только буковки?
      Ответить
      • в коко нет <<, там импотентско-пидорское "shl". Его можно оверлоадунть (как оператор) и можно сделать это инфиксно.
        Ответить
        • std.cout shl "Hello, world" shl std.endl
          Ответить
          • Это не оператор, как оказаось.
            Вот так работает
            object std {
                const val endl = '\n'
            
                object cout {
                    infix fun shl(str: String): cout {
                        print(str)
                        return this
                    }
            
                    infix fun shl(char: Char): cout = shl(String(CharArray(1).apply {
                        this[0] = char
                    }))
                }
            }
            
            fun main() {
                std.cout shl "Hello world" shl std.endl
            }
            Ответить
        • Свои создавать нельзя что ли? Анскилльненько.
          Ответить
          • Именно поэтому ты за «Scala»?
            Ответить
            • Я против Scala.
              Ответить
              • Именно поэтому ты за "нотации" в coq?
                Ответить
                • C "mixfix-ами" в "agda" поприятнее работать, но "нотации" тоже ничего.
                  Ответить
                  • Не понимаю, о чём эта ветка, но я за «Agdam».
                    Ответить
                    • Твой ник похож на ник уёбка. Без обид, если что.
                      Ответить
                      • когда ты рассчитываешь, что это уебок, а это всего-лишь инканус
                        Ответить
            • именно поэтому я за «постгрес»
              можно хоть оператор
              #*@/>>>><<<</@*#
              заебенить
              ограничение на макс 63 символа из набора закорючек и небольшие правила, чтобы не путалось с комментариями или арифметическими унарными минусами и плюсами

              (только вот SFINAE не работает, к сожалению)
              Ответить
          • Можно только функции

            Самое противное, что там даже побитовые or и and выглядят так

            flags and key

            https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/or.html

            противно
            Ответить
            • Фи. Именно поэтому я за «Python».
              >>> a, b = None, 42
              >>> a | b
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
              TypeError: unsupported operand type(s) for |: 'NoneType' and 'int'
              >>> a or b
              42
              >>> 42 | 1
              43
              Ответить
              • на мой взгляд, кокошники переборщили со своей "борьбой с неоднозначным прочтением"

                Все таки вертиальную палочку и энд умеют все программисты (кроме стерторов на дельфи).
                А еще у них массив это не [] а какой-то arrayOf
                Ответить
                • > А еще у них массив это не [] а какой-то arrayOf
                  Это, ЕМНИП, тяжёлое наследие ЙАЖИ.
                  Ответить
                  • в яже есть тип int[] и инициализатор new int[]{1,2,3,4}
                    а у низ это Array<Int> и arrayOf(1,2,3,4)
                    Ответить
                    • Я про https://stackoverflow.com/questions/6802483/how-to-directly-initialize-a-hashmap-in-a-literal-way.
                      // [В «Java 8»] No, you will have to add all the elements manually.
                      // You can use an initializer in an anonymous subclass to make the syntax a little bit shorter:
                      
                      Map<String, String> myMap = new HashMap<String, String>() {{
                              put("a", "b");
                              put("c", "d");
                          }};


                      Ну и в новой ЙАЖЕ появилось очень смешное
                      static <K,V> Map<K,V>	of​(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10)

                      Десяти ключей хватит всем. Если не хватит — будь добр заворачивать всё в «Map.Entry()» и юзать
                      ofEntries​(Map.Entry<? extends K,? extends V>... entries)

                      Ну хотя бы зайчатки вариадиков осилили!
                      Ответить
                      • Т.е. теперь на собеседовании придётся вспоминать в каком языке 9, а в каком 22? Пиздец, пиздец.
                        Ответить
                      • >ofEntries​(Map.Entry<? extends K,? extends V>... entries)

                        Это не породит ли ворнинг про ансейф каст разве? У тебя ведь получица массив Entry, а их параметры проебуца
                        Ответить
                        • а
                          пордон

                          там заткнуто собачкой, как в пхп
                          https://docs.oracle.com/javase/9/docs/api/java/lang/SafeVarargs.html
                          Ответить
                          • Лол, и эти люди ругают "PHP".
                            Ответить
                            • Давайте хвалить "PHP".
                              Ответить
                              • Язык довольно прост, удобно встраивается в "HTML" страницы, содержит богатую библиотеку с функциями, нужными веб-разработчикам (почта, json, http, регулярные выражения).
                                Ответить
                            • Отсутствие генериков в рантайме это один из самых толстых отсовов джавы, даже у C# (не говоря уже про плюсы).

                              Сделано это ради совместимости с кодом, написанным до 1998-го года
                              Ответить
                      • Переведи на "PHP".
                        Ответить
    • Kvardek mil simioj en la pugon ŝovis bananon.
      Ответить
    • Добрый день.

      Этот оффтоп сгенерирован автоматически.

      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/ (альтернативный Говнокод)
      * https://gcode.space/ (read-only зеркало Говнокода)
      * @GovnokodBot в «Telegram»
      * https://vorec.space/ (глоссарий Говнокода)
      Ответить
      • А где ссылка на предыдущий тред?
        Ответить
      • Warning: Consider adding a lang attribute to the html start tag to declare the language of this document.

        From line 1, column 16; to line 2, column 6

        type html>↩<html>
        Ответить

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