home.social

#інфіксний — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #інфіксний, aggregated by home.social.

  1. CW: Функції та оператори в Haskell

    Тепер прийшов час детальніше поговорити про функції й оператори. Мій "курс" розрахований на те що ви знаєте хоча б Python краще якщо C++, бо я найчастіше можу порівнювати саме з ним.

    На відміну від C подібних мов програмування у яких виклик функції відбувається у стилі f(x1,x2) де f це функція, а x1 і x2 це її аргументи. У Haskell синтаксис виглядає так f x1 x2. Це ідентичні виклики, але з різною стилістикою. Якщо тут додати дужки f (x1 x2), тоді x1 вважатиметься ще одною функцією, якій передається один аргумент x2 і результат передасться функції f як єдиний аргумент. Тут дужки вважаються просто групуванням. Але все ще тут відсутня кома між аргументами, якщо її додати f (x1, x2), то (x1, x2) буде кортежем і передаватиметься як один аргумент.

    Також у Haskell можна зробити так (f x1) x2 це буде те саме що й без дужок. Це називається часткове застосування функцій, тому виклик функції називається ліво-асоціативний. Знадобиться нам це трохи згодом.

    Тепер перейдемо до операторів. Вони викликаються в інфіксному стилі, на відміну від функцій, які викликаються у префіксному стилі. Виклик оператора виглядає та 2 + 2 * 2. Оператори мають пріоритети тому цей вираз, як і у математиці, дорівнюватиме 6. Всі оператори є бінарними, окрім унарного мінуса, через це іноді доводиться обгортати відʼємні числа у додаткові дужки (-2) + 2, але у цьому випадку вони не обовʼязкові, натомість якщо поміняти їх місцями 2 + -2 тут виникне помилка, тому потрібно додати дужки 2 + (-2).

    Оператори можна викликати у префіксному стилі, для цього потрібно перенести його на початок і обгорнути у дужки (+) 2 4. У такому разі виклик виглядає як виклик функції. Але й функції можна викликати в операторному стилі для цього ми обгортаємо назву функції у зворотні лапкиx1 `f` x2.

    #програмування #haskell #функції #оператори #виклик #префіксний #інфіксний

    Все не влазилось в один допис, тому продовження у відповіді на цей.

  2. CW: Функції та оператори в Haskell

    Тепер прийшов час детальніше поговорити про функції й оператори. Мій "курс" розрахований на те що ви знаєте хоча б Python краще якщо C++, бо я найчастіше можу порівнювати саме з ним.

    На відміну від C подібних мов програмування у яких виклик функції відбувається у стилі f(x1,x2) де f це функція, а x1 і x2 це її аргументи. У Haskell синтаксис виглядає так f x1 x2. Це ідентичні виклики, але з різною стилістикою. Якщо тут додати дужки f (x1 x2), тоді x1 вважатиметься ще одною функцією, якій передається один аргумент x2 і результат передасться функції f як єдиний аргумент. Тут дужки вважаються просто групуванням. Але все ще тут відсутня кома між аргументами, якщо її додати f (x1, x2), то (x1, x2) буде кортежем і передаватиметься як один аргумент.

    Також у Haskell можна зробити так (f x1) x2 це буде те саме що й без дужок. Це називається часткове застосування функцій, тому виклик функції називається ліво-асоціативний. Знадобиться нам це трохи згодом.

    Тепер перейдемо до операторів. Вони викликаються в інфіксному стилі, на відміну від функцій, які викликаються у префіксному стилі. Виклик оператора виглядає та 2 + 2 * 2. Оператори мають пріоритети тому цей вираз, як і у математиці, дорівнюватиме 6. Всі оператори є бінарними, окрім унарного мінуса, через це іноді доводиться обгортати відʼємні числа у додаткові дужки (-2) + 2, але у цьому випадку вони не обовʼязкові, натомість якщо поміняти їх місцями 2 + -2 тут виникне помилка, тому потрібно додати дужки 2 + (-2).

    Оператори можна викликати у префіксному стилі, для цього потрібно перенести його на початок і обгорнути у дужки (+) 2 4. У такому разі виклик виглядає як виклик функції. Але й функції можна викликати в операторному стилі для цього ми обгортаємо назву функції у зворотні лапкиx1 `f` x2.

    #програмування #haskell #функції #оператори #виклик #префіксний #інфіксний

    Все не влазилось в один допис, тому продовження у відповіді на цей.