Hi Paul! > I have implemented the repeat procedure and pushed the commit to the > repository. > > > I definitely HAVE TO learn Guile. > > This is a good example. > > There is some arithmetic needed to convert the sleep durations, in > milliseconds, to frames, using the frame rate. If you have seen > reverse polish notation before you will recognise the way the > arithmetic expressions are built up. > > The function comes first and the arguments afterwards. So (/ wait > 1000), for example, means divide the variable 'wait' by one thousand. > > The repeat procedure uses a 'named let' for recursion. This calls the > snap! procedure the correct number of times to generate the extra > frames. > > The slightly tricky part was making sure that the snap! procedure and > the repeat procedure are in the same scope. Otherwise, an 'unbound > variable' error is generated. I was able to do this by moving the > repeat procedure, plus the other procedures that are needed for > processing the session files, inside the same let construct in the main > body.
Thanks for your explanation, I did a tutorial and I will be playing with Guile <3 > > To test I used the firstCli session file from 02-daily-use1. I changed > the last line from '#:sleep 30000' to '#:sleep 40000'. The time > durations were: > > before: 78.408000 > after: 88.408000 My good news are that I get the 10 secs difference, the bad ones that the timing is different: 00:01:18.408000000 and 00:01:28.407000000 Any clue? Regards! Laura