this post was submitted on 14 Feb 2024
538 points (96.7% liked)

Programmer Humor

19589 readers
578 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
538
??? (lemm.ee)
submitted 9 months ago* (last edited 6 months ago) by [email protected] to c/[email protected]
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 9 months ago (6 children)

Neither does Haskell, and Haskell won't waste time doing something that doesn't matter.

[–] [email protected] 2 points 9 months ago (5 children)

Imagine using a linked list as your default sequential container.
Rust iterators are lazy btw.

[–] [email protected] 1 points 9 months ago (4 children)

You can't random-access an iterator and use it again later. Can Rust compute the value of calling a function an infinite number of times?

— former rustacean

[–] [email protected] 1 points 9 months ago (1 children)

You can't random-access an iterator and use it again later.

If your specific use case really needs random access to a list while lazy computing the elements just wrap them in Lazy and put them in a vector.

Can Rust compute the value of calling a function an infinite number of times?

The return type of an infinitely recursive function / infinite loops is ⊥, a type that by definition has no values. (Known in rust as !)

[–] [email protected] 1 points 9 months ago

Haskell lets you infinitely recurse while still completing in finite time, and there's even a function (fix) for that. Doing e.g. fix (+ 2) would be an infinite loop if evaluated, yes, but fix (2 :) would give you a useful value that's an infinite stream of 2s. (it's also useful for other things too)

load more comments (2 replies)
load more comments (2 replies)
load more comments (2 replies)