Похожие:
Ленивые типы данных в Objective C
Из соответствующего вопроса я смог понять, как использоватьблокировать объекты для имитации приостановленных вычислений, но я все еще пытаюсь понять концепцию.Для horribleComputation
это будет работать, но как можно моделировать бесконечный поток?
Как это обычно делается в SML,
(* Have a datatype to wrap a computation *)
datatype 'a susp = Susp of (unit -> 'a)
(* Create a recursive datatype to handle an infinite stream *)
datatype 'a stream = Cons of 'a * ('a stream') susp
type 'a stream = ('a stream') susp
Теперь в Objective-C есть typedef, которыйпринимает предопределенные значения
enum suit {hearts, spades, diamonds, clubs};
Я просто не могу понять, как получить Cons
из part
На данный момент, если бесконечное моделирование данных невозможно, какБудет ли одна модель, например, карточная рука.Снова в SML,
datatype suit = Clubs | Spades | Hearts | Diamonds
datatype rank = Two | Four | Five (*... etc *)
(* Then a card *)
type card = rank*suit
(* And now we can have a Hand :) *)
datatype hand = Empty | Hand of card * hand;
Скорее всего, все не подлежит передаче, но мне просто любопытно, насколько хорошо я могу использовать Objective C для ленивого программирования ... например, для обработки всех натуральных чисел по требованию.Я делал круги с моим поиском этого.