home.social

#вираз — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #вираз, aggregated by home.social.

  1. CW: :haskell:, конструкція where

    Окрім виразу let in є ще схожа конструкція where. Вона виконує ту ж функцію, але трохи по інакшому.

    g n = x+2*x where x = n^3+2
    

    На перший погляд, змінилась тільки послідовність оголошення та використання функцій, і це майже правильно. Ключова відмінність у, тому що let in це вираз, а where конструкція. Тому друге можна використовувати там де не можна перше, наприклад при використанні кількох визначень з охоронними виразами чи зіставленнями.

    f x | x > 0 = y * 2
        | x < 0 = y / 2
      where y = cos x^2
    

    На жаль приклад дуже не дуже, але є що є.

    Тут оголошені функції після whare можна використовувати в усіх визначеннях f, й навіть в охоронних виразах. let in такого не дозволяє.

    #ukrhaskell #haskell #where #letin #вираз #конструкція #підфункції #охоронні_вирази #програмування