• 1 Post
  • 10 Comments
Joined 11 months ago
cake
Cake day: August 2nd, 2023

help-circle


  • You’re not getting past this bouncer

    Prompt

    ChatGPT came up with the punny name on its own:

    A large, heavy animal, resembling a buffalo, dressed as a bouncer at a cyberpunk-themed nightclub in an all-animal world. The club, named ‘Byte the Dust’, showcases a grungy, cyberpunk aesthetic, with a neon sign that’s bold and futuristic. The buffalo bouncer is wearing high-tech, neon-lit glasses and a distinctive cyberpunk mohawk. The outfit is a rugged, cybernetic ensemble with metallic accents. It stands imposingly at the club entrance, which features rough textures, rusted metal, and dimly lit neon lights. The buffalo’s expression is tough and unwavering, in harmony with the gritty cyberpunk theme. The artwork should be in a realistic style, highlighting the formidable presence of the buffalo and the intense, neon-tinged atmosphere of ‘Byte the Dust’.


  • The collect’s in the middle aren’t necessary, neither is splitting by ": ". Here’s a simpler version

    fn main() {
        let text = "seeds: 79 14 55 13\nwhatever";
        let seeds: Vec<_> = text
            .lines()
            .next()
            .unwrap()
            .split_whitespace()
            .skip(1)
            .map(|x| x.parse::<u32>().unwrap())
            .collect();
        println!("seeds: {:?}", seeds);
    }
    

    It is simpler to bang out a [int(num) for num in text.splitlines()[0].split(' ')[1:]] in Python, but that just shows the happy path with no error handling, and does a bunch of allocations that the Rust version doesn’t. You can also get slightly fancier in the Rust version by collecting into a Result for more succinct error handling if you’d like.

    EDIT: Here’s also a version using anyhow for error handling, and the aforementioned Result collecting:

    use anyhow::{anyhow, Result};
    
    fn main() -> Result<()> {
        let text = "seeds: 79 14 55 13\nwhatever";
        let seeds: Vec<u32> = text
            .lines()
            .next()
            .ok_or(anyhow!("No first line!"))?
            .split_whitespace()
            .skip(1)
            .map(str::parse)
            .collect::<Result<_, _>>()?;
        println!("seeds: {:?}", seeds);
        Ok(())
    }