Змея / Говнокод #26461 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
Вы напишите
x != x
или
import math
math.isnan(x)
?

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

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

  • я напишу на тебя президенту россии, хам
    Ответить
    • >Плавающий питух не нужен.

      именно по-этому я за 386 без сопроцессора
      Ответить
  • конечно второе
    во-первых я не асемблерщик и не мамин хакир, чтоб завязываться на NaN != NaN.
    Во-вторых
    class Foo:
        def __eq__(self,_):
            return False
    
    
    x = Foo()
    
    print(x == x) # False
    Ответить
        • А я за
          <p>Сумма Вашего заказа <b>Notice: must be real number, not Foo at <code>/home/p/petuz/sait/index.php</code> at line 9241</b> рублей</p>.
          Спасибо
          Ответить
        • А откуда я знаю, что он не намбер? Постоянно проверять? Статическую типизацию же не завезли...
          Ответить
          • Это же питон. Если покрытие тестами не выявило проблемы, значит, все нормально.
            (при условии, что x - промежуточный результат, который тест не может явно задать как строку "NaN" с перегруженным str)
            Ответить
  • Поэтому я за золотой_хуй
    local x = 0/0
    print(((pcall(function() local t = {[x] = 0}; end)) and "not nan") or "nan" ) --nan
    ---------------------
    local x = 1/0
    print(((pcall(function() local t = {[x] = 0}; end)) and "not nan") or "nan" ) --not nan
    ---------------------
    local x = 1/1
    print(((pcall(function() local t = {[x] = 0}; end)) and "not nan") or "nan" ) --not nan
    ---------------------
    Ответить
        • И еще в этих онлайн псевдо интерпретаторе можно проставить унарный минус спокойно и конвертить -nan в nan и наоборот.
          В православных lua -nan вообще не существует и - на nan не работает и будет вечным nan.
          Ответить
            • Зачем вообще нормальному программисту плавающий питух? Для статистики? Для научных расчетов? Для игрушек?
              Если я обычный Сёма Ротоёбов с галеры, крудошлёпю и теку, то нахуя мне плавучка?
              Ответить
    • Версия другая. У меня так
      Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
      > print(0/0)
      -nan
      Ответить
      • Похоже, что в интерпретаторе царский код, и результат (nan или -nan) зависит от того, с какими ключами его скомпилировали.
        Ответить
        • Именно. Вроде от того каким компилятором его скопилили.
          Ответить
        • Ubuntu 18.04 на WSL2, то-есть обычный Linux на вротуалке.
          А вот на винде древняя луа, пришла с ЗБС
          Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
          > print(0/0)
          nan
          >
          Ответить
          • Lua, собранная mingw, выдаёт nan, как и ожидается.

            А вот «luadist с батарейками» и «luaforwindows» и ещё какая-то, собранная MSVC, выдают -1.#IND (без понятия, что это означает; возможно, дробная часть INDEFINED или типа того).
            Ответить
            • Вот тебе реально нехуй делать сейчас, как собирать луа под мингв и проверять минус наны?
              Ответить
              • Это же Икарус. Будь луа под спектрум, он бы его спаял, и там проверил бы.
                Ответить
                  • >собранном «Cygwin» и под «Linux».
                    gcc назвается
                    Ответить
                    • «Mingw» — это тоже «gcc», но в нём просто nan безо всяких минусов.
                      Ответить
                      • gcc в «Cygwin» и под «Linux» создают либу под POSIX, а в Mingw -- либу под Win32API, без слоя эмуляции

                        Зырь импорты у этой твоей lua:
                        Ответить
                        • Похоже, что в «Луа» решили сделать минимальную переголову, поэтому выводит она то, что выводит стандартная библиотека сишки (CRT, libc).

                          Вообще про минимальный обвес где-то писали.
                          Ответить
                          • Так это вроде часть идеологии lua: луа умеет всего по минимуму. Всё, что она может мочь, она делегирует в стдлибу на си.

                            Потому луа очень простая, и очень легко собирается любыми сями (чуть ли не c99).

                            Где есть си -- там есть луа
                            Ответить
                            • И именно поэтому «Lua» — стандарт де-факто для встраиваемого языка программирования в гейдеве.
                              Ответить
                              • Однажды я встречал джавускрипт в гейдеве. Было страшно.
                                Ответить
                              • Не только, он еще встроен в менеджер "Far", например, и даже внезапно:
                                https://developer.ibm.com/technologies/systems/tutorials/l-embed-lua/

                                Забавно, что Руберту делал его совсем не для гейдева. Просто он написал про него на юзнете, а этот пост прочли люди из Sierra, прониклись простотой ембеддинга и декларативным удобством таблиц, и понеслась.

                                Кстати, TCL тоже довольно легко ембеддится.
                                https://wiki.tcl-lang.org/page/How+to+embed+Tcl+in+C+applications
                                Но описать на нем, к примеру, дерево это ой.
                                Ответить
                                • TCL, как и bash — это принципиально скриптовые языки.

                                  Вот Lua, Python, Ruby, PHP, JS — это компилируемые (в байткод) языки, но динамическая питузация, рефлексия, эвалы делают из них скриптовые.
                                  Ответить
                                  • Именно по причине их скриптовости можно делать всякие инересные вещи, и не париться о перформансе: он там всегда хувый.

                                    Штольман по этой причине и проклял тсл, по причине хувого перформнса.

                                    Но, будем честны, скорость работы шелл-скрипта мало кого ебет.
                                    Ответить
                                    • Я думаю, Царя ебёт. Наверняка он думал о бинарном шелл-скрипте, который грузится через mmap, поэтому его размер должен быть кратен 4096 байтам.
                                      Ответить
                                      • Царь вместо шелл-скрипта использует ассемблер, и течет

                                        >4096
                                        А как же хьюдж пейджс?
                                        Ответить
                                    • Штольман вроде проклял создателя Tcl за то, что тот создал стартап и начал коммерциализироваться.

                                      Хотя rms мог проклять за шо угодно
                                      Ответить
                                      • >rms мог проклять за шо угодно

                                        А кто не так давно выступал в Микрософте?

                                        Правда кармическая ответка ему за это уже прилетела.
                                        Ответить
                                    • где у годно эвал, вопрос в том, что в тыцыэль и шелл всегда эвал
                                      Ответить

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

Помни, guest, за тобой могут следить!

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


    8