Публикации по теме '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 просмотров

Почему Haskell не поддерживает взаимно рекурсивные модули?
Haskell поддерживает взаимно рекурсивные привязки let, и это здорово. Haskell не поддерживает взаимно рекурсивные модули, что иногда ужасно. Я знаю, что у GHC есть свой .hs-boot механизм . , но я думаю, что это немного взломать. Насколько мне...
1198 просмотров

Компиляция оптимизации хвостового вызова во взаимной рекурсии между C и Haskell
Я экспериментирую с интерфейсом сторонних функций в Haskell. Я хотел реализовать простой тест, чтобы увидеть, могу ли я выполнить взаимную рекурсию. Итак, я создал следующий код на Haskell: module MutualRecursion where import Data.Int foreign...
310 просмотров

Как я могу написать эту функцию только с помощью рекурсии в 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 просмотров

Могу ли я сделать «сложную» взаимную рекурсию в Coq без привязки let?
Рассмотрим следующую пару взаимно рекурсивных типов данных Coq, которые представляют Forest непустых Tree . Каждый Branch из Tree содержит дополнительный логический флаг, который мы можем извлечь с помощью isOK . Inductive Forest a :...
235 просмотров