Reaching 5,600 models on Autocade; Yema completed—a sign of consolidation

With the Yema Spica, we’ve reached 5,600 models on Autocade. The EC30 EV version of the Chinese MPV was number 5,601. Again, it’s not the most glamorous or desirable model for the milestone, but it deserves a spot as much as any saloon or supercar. This also completes the Yema-branded cars for

Autocade World

Окрім виразу 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 #вираз #конструкція #підфункції #охоронні_вирази #програмування

Найменшенький (@[email protected])

Вираз let in у

Часто у вичисленнях потрібно використовувати одне й теж значення у різних місцях і коли це не якийсь літерал, а вираз, то простіше дати йому назву і використати її. Саме для цього служить вираз let in.

f x = let y = x+2*x in y+1/y

Це спрощує, і написання, і розуміння коду. У цьому випадку одразу видно що використовується одне значення і не потрібно порівнювати візуально. Функція повертає значення яке стоїть після in.

Ми можемо оголошувати одразу кілька функцій у секції let.

f x = let a = x*2 b = x^2 in a + b/2

У let можна створювати не тільки константи, а й функції з аргументами.

f x = let g y = y*2 in g x + 2

Читати такий код не дуже зручно тому його можна, або розбити на кілька рядків, або додати дужки.

f x = let {g y = y*2} in g x + 2

#ukrhaskell #програмування #haskell #letin #let #in #вираз #підфункції

Social.Net.Ua