Важная информация
Показано с 1 по 6 из 6

Тема: Нужны ли анонимные функции

  1. #1 Нужны ли анонимные функции 
    Новичок Аватар для Эрик Замабувараев-Ёмолкуу
    Регистрация
    12.03.2018
    Сообщений
    24
    Сказал(а) спасибо
    0
    Поблагодарили 15 раз(а) в 11 сообщениях
    Хочу создать новую возможность в компиляторе: анонимные функции и лямбда‐выражения.

    Для тех, кто не в курсе — это такие функции, которые объявляются прямо в месте использования.

    Пример однострочной анонимной функции:
    Basic Code:
    1.  
    2. var square = Function(n As Integer) n * n
    3.  
    4. Print square(4)

    Пример многострочной анонимной функции:

    Basic Code:
    1.  
    2. var division = Function(u As Integer, v As Integer)
    3.                     Return u \ v
    4.                 End Function
    5.  
    6. Print division(10, 5)
    Ответить с цитированием  
     

  2. Пользователь сказал cпасибо:

    Free Admin (13.03.2018)

  3. #2  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    559
    Сказал(а) спасибо
    34
    Поблагодарили 245 раз(а) в 162 сообщениях
    Вообще лямбды - хорошая штука. Пользоваться только ими надо правильно. Вот прочитает про них начинающий программист и начинает пихать куда не надо, качество кода падает...
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  4. #3  
    Профи Аватар для stabud
    Регистрация
    05.01.2013
    Сообщений
    756
    Сказал(а) спасибо
    308
    Поблагодарили 323 раз(а) в 257 сообщениях
    Записей в блоге
    6
    Эрик!

    Уверен , что кроме тебя никто этим пользоваться в среде FB сообщества не будет. Почему? Больше половины используют FB как нечто напоминающее QBASIC , то есть вообще как BASIC. Мало кому нужны все эти ООП и прочие приблуды из ООП-ориентированных языков. Большинству хочется реализовать что-то простенькое простыми средствами , не залезая в дебри сложных конструкций. Если бы ты предложил встроить в компилятор:

    1) звук (хотя бы WAV) , пусть даже без поддержки DOS (по понятным причинам)
    2) дополнительные функции работы с изображениями (ресайзинг , вращение ,загрузку PNG , JPG)
    3) функции работы со строками (например ReplaceString)
    4) Альтернативу функциям графики на OpenGL (то есть те же команды {PUT , GET , DRAW ...} , но использующие OpenGL)

    Вот эти инициативы сообщество FB поддержит двумя руками , я уверен. И твоя альтернативная ветка с компилятором станет возможно гораздо популярнее официальной и ей начнут реально пользоваться. Для того, чтобы удостовериться , ты можешь провести опрос на оф. форуме и поймешь , что я прав.
    Ответить с цитированием  
     

  5. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (24.03.2018), Free Admin (22.03.2018)

  6. #4  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,691
    Сказал(а) спасибо
    1,736
    Поблагодарили 882 раз(а) в 754 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Эрик Замабувараев-Ёмолкуу Посмотреть сообщение
    Нужны ли анонимные функции
    Мне не нужны - 100%.

    Цитата Сообщение от stabud Посмотреть сообщение
    Мало кому нужны все эти ООП и прочие приблуды из ООП-ориентированных языков.
    Стас, я вот с одной стороны понимаю, зачем его туда впилили(ну типа по принципу Паскалей, чтобы появились такие же
    штуки как и Lazarus, аналоги формошлёп ООП сред), а с другой стороны не понимаю, они же видели успех PB, более
    того автор же вроде даже оттуда был. Имхо им нужно было либо сделать это директивой LANG, либо отдельный форк
    мол FB CLASSIC и FB OBJECT. А когда кони люди смешались это всё, это кабзда.

    Там помню справку почитал, там весь мозг сломаешь, так наворотили. Понятно что кому-то это удобно, но ёпт
    это была идеология QuickBasic, а теперь даже и фиг знает, всё намешали, наворотили.
    Уже давно замечаю какую-то, абсолютно нездоровую тенденцию к самоистязанию. Бейсик кодеры вместо того,
    чтобы просто пилить программы, начали соревноваться в сложности реализации компилятора с другими ЯП,
    блин это очень смешно выглядит.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    Ограниченно модерирую.
    Ответить с цитированием  
     

  7. #5  
    Новичок Аватар для Эрик Замабувараев-Ёмолкуу
    Регистрация
    12.03.2018
    Сообщений
    24
    Сказал(а) спасибо
    0
    Поблагодарили 15 раз(а) в 11 сообщениях
    Чат, вот смотри. Хочу создать второй поток, но как‐то лень декларировать отдельную процедуру. Через анонимные функции можно вот так:

    Basic Code:
    1.  
    2. Dim ThreadId As Any Ptr = ThreadCreate(Sub(userdata As Any Ptr)
    3. Do
    4. ' Какая‐нибудь полезная работа
    5. Loop
    6. End Sub, _
    7. 0, _
    8. 0)

    Вот, процедура потока объявлена прямо при вызове функции создания потока. Удобно же.
    Ответить с цитированием  
     

  8. #6  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,691
    Сказал(а) спасибо
    1,736
    Поблагодарили 882 раз(а) в 754 сообщениях
    Записей в блоге
    1
    Цитата Сообщение от Эрик Замабувараев-Ёмолкуу Посмотреть сообщение
    Удобно же.
    Тому кто кодит может и удобно, но вот тому кто читает код - не особо.

    Вообще попытка засунуть в одну строчку кода кучу всяких штук и последующие символы _, это адски снижает
    читаемость кода, т.е. нагромождение, плюс изначально это не BASIC фишка и ничего хорошего в ней нет.
    синтаксис QuickBasic потому и стал стандартом, что он был минимально конфигурируемый и однозначный,
    это снижало время на чтение кода.
    Да и вообще у меня в голове не укладывается как это, размещать код процедуры без каких-либо разделительных
    знаков в виде параметра процедуры, т.е. логику компилятора уже догнать проблемно, т.е. я читаю и охереваю
    просто, что натворили разрабы компилятора. Все уже забыли как это выглядит классически ( т.е. PROCPTR(имя) ).
    Плюс размещение функциональных блоков где попало - не ведёт к порядку в программе, это расслабляет
    точно так же как подсветка синтаксиса, автогенераторы кода(визарды) и прочие хелперы-ништяки.
    И вообще это косяк IDE, в QuickBasic можно было в два клика создать процедуру или функцию(ALT->E->S),
    проверка прототипов была почти автоматическая, всё было сделано настолько органично, что не имело смысл
    что-то вообще менять.
    Последний раз редактировалось >Quiet Snow<; 31.03.2018 в 19:01.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    Ограниченно модерирую.
    Ответить с цитированием  
     

  9. Пользователь сказал cпасибо:

    Free Admin (02.04.2018)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. нужны советы, пропали файлы с ноута
    от Алёна Копылова в разделе Общие вопросы про железо
    Ответов: 5
    Последнее сообщение: 11.02.2018, 03:25
  2. Нужны тестеры | Новая программа для постинга в вк
    от Fin4box в разделе Оптимизация, продвижение и аудит
    Ответов: 0
    Последнее сообщение: 10.03.2017, 21:41
  3. Нам нужны Модераторы....!
    от Free Admin в разделе Архив
    Ответов: 11
    Последнее сообщение: 23.01.2015, 13:09
  4. Нужны кейвордсы ?
    от Gregor в разделе Общие вопросы оптимизации
    Ответов: 11
    Последнее сообщение: 08.07.2013, 22:45
  5. Ответов: 0
    Последнее сообщение: 18.03.2012, 18:53
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •