Публикации по теме 'mutual-recursion'
Ocaml — Взаимная рекурсия?
Я проходил курс по Ocaml в парижском университете имени Дидро и впервые столкнулся с взаимно рекурсивными функциями.
Прежде всего, давайте начнем с определения функции. Ocaml — функциональный язык программирования со статической типизацией и выводом типа. Ниже приведен пример создания функции, вычисляющей сумму.
Итак, теперь, отложив основы, давайте попробуем звездный пример, который используется для введения рекурсии. Вычисление факториала числа. Это определяется в..
Вопросы по теме 'mutual-recursion'
Как сделать так, чтобы два метода вызывали друг друга?
Я немного запутался в том, как заставить два метода вызывать друг друга (т.е. иметь A() call B() и B() call A() ). Кажется, что F # «видит» метод только после того, как он был обнаружен в коде, поэтому, если он не был обнаружен, он просто...
3216 просмотров
schedule
25.05.2024
Как изменить порядок этих функций F#, чтобы они имели смысл?
Я думал, что хорошо справлюсь с F#, так как неплохо разбираюсь в Haskell, но я чувствую, что меня ставят в тупик очень простые проблемы. У меня есть код синтаксического анализа для простого синтаксического анализатора JSON, например:
let rec...
157 просмотров
schedule
04.12.2022
Почему Haskell не поддерживает взаимно рекурсивные модули?
Haskell поддерживает взаимно рекурсивные привязки let, и это здорово. Haskell не поддерживает взаимно рекурсивные модули, что иногда ужасно. Я знаю, что у GHC есть свой .hs-boot механизм . , но я думаю, что это немного взломать.
Насколько мне...
1198 просмотров
schedule
06.07.2022
Компиляция оптимизации хвостового вызова во взаимной рекурсии между C и Haskell
Я экспериментирую с интерфейсом сторонних функций в Haskell. Я хотел реализовать простой тест, чтобы увидеть, могу ли я выполнить взаимную рекурсию. Итак, я создал следующий код на Haskell:
module MutualRecursion where
import Data.Int
foreign...
310 просмотров
schedule
29.09.2022
Как я могу написать эту функцию только с помощью рекурсии в F#?
let rec n_cartesian_product = function
| [] -> [[]]
| x :: xs ->
let rest = n_cartesian_product xs
List.concat (List.map (fun i -> List.map (fun rs -> i :: rs) rest) x)
Привет! Я написал эту функцию, но мне...
290 просмотров
schedule
09.08.2022
F#: Катаморфизмы для взаимно рекурсивных структур данных
Предположим следующую взаимно рекурсивную структуру:
type Tree<'a> =
| Empty
| Node of 'a * 'a Forest
and Forest<'a> =
| Nil
| Cons of 'a Tree * 'a Forest
Цель: создать общие катаморфизмы для этой структуры:...
224 просмотров
schedule
16.06.2022
Могу ли я сделать «сложную» взаимную рекурсию в Coq без привязки let?
Рассмотрим следующую пару взаимно рекурсивных типов данных Coq, которые представляют Forest непустых Tree . Каждый Branch из Tree содержит дополнительный логический флаг, который мы можем извлечь с помощью isOK .
Inductive Forest a :...
235 просмотров
schedule
03.07.2023