Giter Site home page Giter Site logo

Comments (3)

CFiggers avatar CFiggers commented on June 4, 2024 2

Your (length part-list) is returning 3, which means your loop is going to run a total of four times (because you're starting at zero, so it will run for i = {0, 1, 2, 3}). But a zero-indexed array with three elements only goes up to a max of 2.

To fix it, you could decrement that value (like this: (dec (length part-list))) so that you only run the loop three times (on 0, 1, 2).

EDIT: Although actually, looking at the body of your loop, you're incrementing the i to get the next element in the array. So that will go out of bounds when the loop runs on i = 2. You might want to try (- 2 (length part-list)) instead of what I wrote above.

EDIT AGAIN: Actually I think I was wrong above, because the :range keyword in (loop) goes UP TO the second number but doesn't include it. So only decrementing the counter a single time should be fine, only because you're looking one ahead in the body of the loop 🙂

from janet.

sogaiu avatar sogaiu commented on June 4, 2024

I think the message is saying that the expectation was for a value that is 0, 1, or 2, but it got 3.

IIUC, the [0, 3) notation is from math -- a half-open interval (so 0 is included but 3 is not).

May be you are familiar already, but FWIW, there are some details in this section of a Wikipedia page (no direct link -- searching for "half-open" may get one closer).

from janet.

CubicMelon avatar CubicMelon commented on June 4, 2024

That was it, I had to decrement the end of the range by 1 because I was looking one index ahead each loop! That's what I get for trying to write this overnight. Thanks so much for helping me understand.

from janet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.