Запитання з тегом «functional-programming»

Функціональне програмування - це парадигма програмування, яка в першу чергу використовує функції як засоби побудови абстракцій та вираження обчислень, що містять комп'ютерну програму.

1
Які класи структур даних можна зробити стійкими?
Стійкі структури даних - це незмінні структури даних. Операції над ними повертають нову "копію" структури даних, але змінену операцією; стара структура даних залишається незмінною. Ефективність зазвичай досягається шляхом обміну деякими базовими даними та уникнення повного копіювання структури даних. Запитання: Чи є результати щодо класів структур даних, які можна зробити стійкими …

3
Функція ML типу 'a ->' b
Наш професор попросив нас придумати функцію в OCaml, яка має такий тип 'a -> 'b тобто функція одного аргументу, який може бути будь-яким, і який може повернути інше що завгодно. Я думав використовувати raiseу функції, яка ігнорує її аргумент: let f x = raise Exit Але професор сказав, що в …

3
Як зробити мову гомоніконічною
Згідно з цією статтею, наступний рядок коду Lisp друкує "Hello world" на стандартний вихід. (format t "hello, world") Lisp, що є гомоніконімічною мовою , може розглядати код як дані таким чином: А тепер уявіть, що ми написали такий макрос: (defmacro backwards (expr) (reverse expr)) назад - це назва макросу, який …

3
Вивчення теорії мови програмування
Нещодавно я дуже зацікавився розумінням та доведенням аспектів (функціональних) мов програмування. Однак, коли я заглиблююсь все глибше, такі речі, як обчислення, теорія категорій та денотаційна семантика, трохи важко обробляти без належного пояснення.λλ\lambda Я читаю SICP (досить просвітницьку книгу), але прагну заглибитися в теорію функціонального програмування. Чи є книги / блоги …

1
Немає наївних теоретичних моделей поліморфного обчислення лямбда?
У статті Філіпа Вадлера про « Теореми безкоштовно» він у розділі 2 про параметричність заявляє, що не існує наївних множинно-теоретичних моделей поліморфного обчислення лямбда У наївній множинно-теоретичній моделі є набори, а функції - множинно-теоретичні функції, що здається розумним. То чому він каже, що немає наївних множинно-теоретичних моделей поліморфного обчислення лямбда?

3
Чим відрізнятиметься процесор, призначений виключно для функціонального програмування?
Процесори розроблені з урахуванням програмного забезпечення, яке люди будуть писати для нього, неявно або явно. Мені здається, що якщо подивитися на дизайн архітектурних наборів інструкцій, вони є дуже «імперативними», в тому сенсі, що кожна інструкція кодує команду імперативного стилю. Також мені здається, що нинішні архітектури наборів інструкцій еволюціонували частково на …

2
Чи є рецензовані документи, що вивчають плюси та мінуси функціонального програмування?
Чи може хтось віднести мене до рецензованих робіт, що вивчають переваги чи недоліки написання коду у функціональному стилі? Чи існують документи, в яких обговорюється застосування обчислення лямбда в таких сферах, як машинне навчання, мовний дизайн тощо?


2
Чи надають функції вищого порядку більше функціонального програмування?
Я задавав подібне запитання на cstheory.SE . Відповідно до цієї відповіді на Stackoverflow існує алгоритм, який на не ледачому чистому функціональному мові програмування має складність , тоді як той самий алгоритм в імперативному програмуванні - Ω ( n ) . Додавання лінивості до мови FP зробило б алгоритм Ω ( …

2
Чи архітектури процесора налаштовані на процедурний час?
Чи можуть бути внесені зміни в процесори, щоб зробити їх ефективнішими для одночасних циклів виконання, таких як Rust? Наприклад, чи є зміни у впровадженні передбачення гілок чи розмірах кешу, які допоможуть одночасно виконуватись? У мене складається враження, що поточні конструкції процесора можуть бути оптимізовані більше для процедурних процесів, таких як …

1
Чи монада IO технічно неправильна?
На вікі haskell є наступний приклад умовного використання монади IO (див. Тут) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Зауважимо, що в цьому прикладі дане визначення IO aмає бути таким, RealWorld -> (a, RealWorld)щоб …

3
Як "вирубка лісу" видаляє "дерева" з програми?
Я думаю, розумію, як вирубка лісів споживає та створює список одночасно (із функції складання та розгортання - див. Цю хорошу відповідь на CodeReview тут ), але коли я порівнював це із записом у Вікіпедії щодо техніки, про яку говорилося про «видалення дерева 'з програми. Я розумію, як програма може бути …

1
Чи можуть такі властивості, як використання функції пам'яті функції, виражатися залежно набраною мовою?
Припустимо, хочеться міркувати про властивості коду, що перевищує такі речі, як сукупність та функціональна чистота, а також дбає про споживання пам'яті або алгоритмічну складність функції. Чи можна це зробити за допомогою залежних систем набору тексту та ефектів?

2
Реалізація незмінної (стійкої) масивної структури даних з швидкою індексацією, додаванням, додаванням, ітерацією
Я шукаю стійку структуру даних, схожу на масив (але незмінний), що дозволяє швидко проводити операції індексації, додавання, додавання та ітерації (хороша локальність). Clojure забезпечує стійкий вектор, але це лише для швидкого додавання. Вектор Scala має ефективно додавання та додавання в постійному часі, але я не можу зрозуміти, як це реалізовано, …

1
Підхід “CPS” завдав великої шкоди результативності в SML / NJ; міркування бажаного
У коментарі до Learning F #: Які книги за допомогою інших мов програмування можна перекласти на F # для вивчення функціональних понять? Макарій заявив: Зауважте, що підхід "CPS" завдав великої шкоди продуктивності в SML / NJ. Його модель фізичної оцінки порушує занадто багато припущень, які вбудовані в апаратне забезпечення. Якщо …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.