90 comments

[ 5.1 ms ] story [ 171 ms ] thread
Looks a bit half-baked.

The concept seems interesting. It seems like it’s missing too much information/behavior to explore in an interesting way.

<comment was incorrect, redacting misinformation>
You have to click the ingredient to expand the instructions.
Gotcha, thanks for the clarification.
Fun recursive food fact: the filling between the wafers of a kit-kat bar is ground up kit-kat bars.
This would transform the dependency graph from a DAG to one with cycles and thus the recipe could not be resolved
So... Kit-Kats are impossible! Yet they exist, a miracle!
They are not impossible. It takes a fraction of a Kit-Kat to make a Kit-Kat.

But nobody can build them from scratch. If at any time they are all eaten, that's it!

It’s like a self compiling compiler that can’t be bootstrapped!
How was the first KitKat built then?
The first KitKat wasn't as good as the latest KitKat, as it wasn't KitKat enough
So then as every KitKat is produced, we are approaching the ideal KitKat?
I think KitKat already peaked when Melon KitKat was released.
There was no “first” KitKat! What a silly strange deranged heretical thought!

Perhaps you are confusing the (discarded, and rightly so!) Unified Linear Field Theory with the (universally accepted, as it should be!) Unified & Closed Modular Field Theory?

Time ultimately, like all dimensions, is a meaningless loop. Of Kit-Kat’s.

Leaving only one last physics question to settle definitively, by prose, coercion, poison, blade, and projectile: Do the Kit-Kats form a Dünkin torus or a Möbius strip?

Entire schools of sugary confectionary thought hang in the balance!

A small trick can help.

A Kit-Kat bar consists of some external components, like wafers and chocolate. It's only the combination that turns them into a bar.

So you can bootstrap production by grinding the components and mixing them: it produces a Kit-Kat bar in a ground state. After that, you can produce more and more nominal-state bars.

Which came first, the filling or the kit-kat bar?
Surely Wikipedia would mention such a unique property if it were true, but I can't find a mention of that an ingredient for kit kats is a (fractional) kit kat on https://en.wikipedia.org/wiki/Kit_Kat

I really want to believe this :(

Was a little disappointed that the apple pie page doesn't let you drag the time limit long enough to "first create the universe".
Neat idea. Small HTML oops: the semantic link was trying, but missed, so not middle-clickable:

    <div class="box ingredient-box clickable nounderline"
         onclick="location.href='/recipe/refried-beans';">
      <h3>
        <span class="display-block">
          <a href='/recipe/refried-beans'></a>
          Refried Beans
        </span>
      </h3>
    </div>
A more structural HTML, plus modern CSS styling, would work a little better in modern browsers, and degrade better in lightweight and older browsers.
I'd like to better understand the intent with that code. What is it trying to achieve that this does not?

    <a class="box ingredient-box clickable nounderline"
         href="/recipe/refried-beans">
      <h3>
        <span class="display-block">
          Refried Beans
        </span>
      </h3>
    </div>
A link that's only clickable by JS looks like an anti-scraping measure :(
This is neat! On this topic, an interesting and pretty comprehensive guide to money / time / effort / quality tradeoffs in food is "Make the Bread, Buy the Butter" by Jennifer Reese.
Why is land considered $0, when it's actually really expensive to obtain?
That just means you're doing it wrong.

The correct way is to be born to a wealthy family, and inherit it for $0.

The website seems to only count the cost of ingredients that are consumed by the recipe. Also explains why a cow is $0.
Some of the recipes take in account bulk creation, some don't: Egg poaching can be done in batch, it does not take 9 hours to do 12 serves of Egg Benedict (+ sauce + poaching)!

Some of the recipes are wrong: for Eggs Benedict: should be: 1 whole muffin : 2 whole egg : 2 whole slice bacon

Also the muffin step has a two hour rest, which isn't included in the total time
I think it'd be cool to see a Gantt chart of the process as well, to get an alternative visual idea of the dependencies and timings
I write recipes out as somewhere between a Gantt chart and a left to right dag, it can be a very compressed representation
I've written recipes as BPMN, but it reminded me too much of works.
Somewhat related (to the cookie recipe) is the purest cookie: https://www.youtube.com/watch?v=crjxpZHv7Hk
interesting. i was a bit disappointed that he used finished chocolate instead of making that from scratch too. but then i noticed that he has a video on making chocolate, so at least in principle he got that covered.

as for the taste, i would like to see a series of experiments where each pure ingredient is replaced with a consumer grade one, one at a time, to see which ones are responsible for the taste.

Funny seeing the "atomic" recipe for refried beans. I've recently learned to make my own refried beans from scratch, and it is a super easy recipe. My recipe is recursive, though! I use dried beans that I've already cooked and frozen ahead of time.

(Canned beans are fine in a pinch)

That's why I wanna try fried beans, because maybe they're just as good.
What about rerefried beans? If twice is good, three times must be better?
Fun fact, the English name is a translation error from 'frijoles refritos,' which is closer to "well fried" in meaning.
I thought it was odd to stipulate the use of a frying pan; I thought the "refritos" bit was a misnomer. My method involves simmering the beans with garlic until soft, mixing in butter, and then whizzing/mashing. There is no "frying" step, unless you like to scour frying pans.
I was disappointed I couldn't actually create recursion by tracing my egg to a chicken to an egg to a...
Hahaha! Right I expected the same for yogurt!

I was thinking about this actually; are these actually recursive or just like self referential? But it's a recursive data type!

type Ingredient { ingredients: Ingredient[] }

In the recipe the third step of making yogurt calls for yogurt.

> 3. Stir in some yogurt (from the store or from a friend) and cover with a clean damp towel overnight.

It is kind of a missed opportunity to not include yogurt as the ingredients list for yogurt, and in the flow chart, to have a loop arrow from yogurt, pointing back into it self. “To make yogurt, you need milk and yogurt”

EDIT: Looks like somebody already filed a feature request. https://github.com/schollz/recursive-recipes/issues/19

(comment deleted)
Ah, this is neat! From the title, I thought it would be about perpetual stew, where the stew is an ingredient to itself.
I'd like to report a bug, or two:

- there's no recipe for the cow

- 1/8 of a cow is reported as $0.00

https://recursiverecipes.schollz.com/recipe/refried-beans?am...

Yes - and the 1/8 of a cow is needed to make milk to make butter. This might be possible if you were very selective about which eighth of a cow you procured, but you’d need some additional kit which the recipe doesn’t account for.
I buy half a cow every year and I can tell you for a fact that it doesn't come with the milk making parts still intact.
Some of the $0 items are the base "from scratch" items. You can click on an item to make it from scratch; doing so for eggs gives an egg-laying chicken (with an associated price), but doing that again gives the base level of "baby chicken." Not everything goes down that far (e.g. baking powder) but things like soil and seawater are of that ilk. See also: vanilla
Really interesting concept, but I think something is very wrong with whatever it is doing to (intentionally?) highjack browser histories/navigation on every page.

For example, if I just click "Refried beans" on the homepage, then click the recipe for "Refried beans" from the ingredients list on that page... it takes pressing Back on the browser FIVE times before I'm finally back at the homepage. And, interestingly, at no point during this process do I actually go back to the actually-previous page (where you land after clicking "refried beans" on the homepage) -- I just stay on the current page as the URL changes every time and then eventually make it all the way back to the homepage with nothing in-between.

> For example, if I just click "Refried beans" on the homepage, then click the recipe for "Refried beans" from the ingredients list on that page... it takes pressing Back on the browser FIVE times before I'm finally back at the homepage.

I must be getting old. There's no hijacking going on here, the page uses URL params, and probably JS to decode them.

So I'd say that the page must hijack the history to not pollute it with navigations that from the user perspective, aren't navigations.
URL params have (almost) nothing to do with history hijacking. That’s all the history.pushStare and replaceState API’s.
I was expecting recipes to make something that's an ingredient of themselves, so that the recipe is truly recursive.

Now I'm trying to find out such examples of actually recursive recipe and I only find examples based on fermentation, which have a way to be bootstrapped but are then actually recursive: kombucha, kefir, vinegar, levain.

Is there anything else?

I heard this from a Russian friend years ago (so I might get the details wrong): to make the Cocktail Recursive, mix

- 1 unit of vodka

- 2 units of water

- 3 units of Cocktail Recursive

Also well known is Russian recursive salad: tomato, cucumber, salad.

(Where the salad the consituent is an alias for lettuce)

I can't imagine Russians mixing vodka with water, though.

There's also the Fibonacci's salad: mix leftovers from yesterday's salad with leftovers from the salad you had two days ago.
Making yoghurt contains the instruction: "Stir in some yogurt (from the store or from a friend) and cover with a clean damp towel overnight."

This recursive dependency is not visualized sadly. Fun website nonetheless!

Yes of course, yogurt, which is another fermentation based recipe.
Fondant is much easier to make with some fondant as an ingredient. It acts as a seed to encourage the formation of the structure. I wonder if there are any mutually-recursive recipes.
Fruits salad?

Throw away the kernels, get more fruit.

They missed an opportunity with the eggs, which went egg -> egg laying chicken -> baby chicken but could clearly have then included baby chicken -> egg ...
> so that the recipe is truly recursive

Recursion doesn't imply infinite recursion; a recipe doesn't have to invoke itself to be a recursive recipe. Surely a recursive recipe is just a recipe that invokes a recipe.

This is completely normal; see Escoffier. E.g. for Cod Mornay, "Make a roux".

Escoffier's recipes were often just a single paragraph; you were supposed to know how the target tastes and looks.

Making sourdough is arguably infinitely recursive. You can break the recursion by looking up "Make a sourdough starter".

> a recipe doesn't have to invoke itself to be a recursive recipe

Er, no. That IS exactly what recursion means. It doesn't have to be infinite - there can be a halt condition - but if something doesn't call itself, it is not recursive.

These are not recursive recipes at all; they're just nested.

> Surely a recursive recipe is just a recipe that invokes a recipe.

No, a recursive recipe is one that (directly or indirectly) invokes _itself_. That's the whole point of recursion (literally, come back (=re) turning (=cur)).

And don't call me Shirley.

OK, I should have thought a bit more before posting.

But in that case the recipe for refried beans isn't recursive; there are no refried beans in the ingredients for refried beans, even if you grow your own beans as part of the recipe.

I had a boss who liked to be obeyed immediately; if you said you'd do it shortly, he'd say "Don't call me Shortly". He wasn't very tall.

a common way to temper chocolate for making candy is to seed the crystal structure with... tempered chocolate
It’s giving ice-9. Anyone know how the first chocolate was tempered?
You can also temper chocolate by melting it to 50°C-55°C, cooling it to 28°C and then working with it, barely melted, at 31°C. I don't know how we figured that out to start with though.
It's an interesting idea, but it could be... better? I started expanding pancakes, and at some point I got butter and buttermilk. The instructions to make them are essentially duplicated, despite buttermilk being a byproduct of making butter. The total prep time is also duplicated. Even if they were independent recipes, they could be done in parallel (most of the 24+ hours recipes for buttermilk and butter are 12-hour stages of waiting).
According to this I can replace wheat with an acre of soil, in a recipe of pancakes for 8.

I don't think my guests will be returning. Department for Environment, Food & Rural Affairs might also pay me a visit if I attempt this.

This reminds me of something that always made me smile - when at uni I lived with an Israeli guy who made yogurt in a pan in the kitchen. When I asked how you make yogurt, the answer was “put some milk in a pan with some yogurt and leave it for a few days”. Not sure whether they’re in on the joke here, but the recipe for yogurt is to buy some
This is actually something I feel lack in lot of recipes. They are often "too simple", as in they assume a lot of knowledge. Let's say you're making cinnamon buns. The recipe will basically just say mix these ingredients, knead, let it raise, roll, add stuff, bake.

But it lacks all the details. Like how do you work the best with different kind of yeast? How do you know if you got the right texture / amount of liquid? What about all the tricks and tips when working with this kind of baking stuff?

Old school cooking books are often better at this. There the cinnamon bun recipe would be "use the base bun dough from page X, but use only Y amount of ingredient Z". And then on the base recipe, all you need to know about doughs are covered.

Similarly, a recipe with meat will just say "cook until done", and then you need to know yourself how to best sear it, the temperature at which it is done etc.

Perhaps this is a place where LLMs can shine. It can fill in the perfect amount of knowledge for me if I'd ask it.

There has always been a distinction between (basic) cooking books that teach basic recipes and the accompanying cooking techniques on one hand and recipe books.

But there also was always the assumption, that people pick up very basic techniques starting as a child by helping in the kitchen, beeing shown by it and doing it themselves.

You might like Harold McGee's "On Food and Cooking" which is basically a popular science food chemistry "textbook" (it doesn't really go in the chemistry details but it usually gives you some pointers). It's got a chapter on dough iirc :) It's an excellent bathroom book because you can just open any page to find some quirky facts about foods.
Can someone now create a Factorio mod from this, please?
It would be great to have an option to not only increase and decrease the time limit, but simply increase/decrease the complexity by one step.

Edit: OK, this seems to kinda work by clicking on the ingredient.

I am disappointed that the recipe for "tortilla" is "go and buy it"; regardless of wheat flour or corn flour based tortillas, it is easy enough to make your own, and the different in taste is paramount.
I think you may have missed the point of the site: "Go and buy it" is merely the starting state for all recipes, see "Click on an ingredient to make it from scratch."
You have to click on the step to expand it.