"#isOdd is not Smalltalk" - doh, I typed it in on my phone and so it just goes 
to show that it highlights the flaw in chatGPT that others have called out in 
other languages. I had meant to find some trickier code samples to see how well 
it does...

Still, it is very interesting how it reasons on this stuff - and I wonder if 
there is way to tell it about these mistakes? For example is it reading this 
email (or will it in the future) and understand that it is #odd and not #isOdd.

Tim

On Wed, 15 Mar 2023, at 9:57 AM, Joachim Tuchel wrote:
> interesting....
> 
> #isOdd is not Smalltalk, neither Pharo 10 nor VAST 12  understands this 
> message ;-)
> 
> If I evaluate your snippet -replacing #isOdd for #odd, I get an empty 
> Collection. The divisible by 4 things is somewhat interesting, because (1 to: 
> 100 by: 4) is amn interval 1,5,9 etc.... ;-)
> 
> So chatGPT is probably a newbie in Smalltalk. Interesting is how logical the 
> explanation sounds, you're tempted to believe it...
> 
> 
> 
> Joachim
> 
> 
> 
> 
> 
> Am 15.03.23 um 10:45 schrieb giorgio ferraris:
>> it's interesting to see how the answer changes with only a small change on 
>> the question:
>> 
>> (1 to: 100 by: 4) reject: [:i | i isOdd]
>> 
>> gives:
>> The code creates a collection of numbers from 1 to 100, incrementing by 4 at 
>> each step using the `to:by:` message. It then applies the `reject:` message 
>> to this collection, which returns a new collection containing all elements 
>> for which the given block evaluates to false.
>> 
>> In this case, the block is `[i | i isOdd]`, which checks whether a given 
>> number `i` is odd using the `isOdd` method. So the result of the entire 
>> expression is a collection of all even numbers between 1 and 100 that are 
>> divisible by 4.
>> 
>> 
>> ciao
>> 
>> giorgio
>> 
>> 
>> On Wed, Mar 15, 2023 at 8:07 AM Tim Mackinnon <tim@testit.works> wrote:
>>> Of course everyone is talking about ChatGPT, and I saw a post to 
>>> ExplainCode and didn’t expect it to understand Smalltalk, so was impressed 
>>> that it does! Presumably the Tonel Smalltalk code on GitHub has helped 
>>> along with numerous articles?
>>> 
>>> Try it out: https://whatdoesthiscodedo.com/
>>> 
>>> I gave this simple example: (1 to: 100 by: 3) reject: [:i | i isOdd]
>>> 
>>> And got this (neat eh):
>>> 
>>> The code above is written in the programming language Smalltalk.
>>> 
>>> It creates a collection of numbers from 1 to 100, incrementing by 3 at each 
>>> step. This is done using the "to:by:" construct where the starting value is 
>>> 1, the ending value is 100, and the increment is 3.
>>> 
>>> The resulting collection is then filtered using the "reject:" method, which 
>>> takes a block of code as an argument. In this case, the block checks 
>>> whether each element (denoted by the variable i) is odd by using the 
>>> "isOdd" method. If an element is odd, it will be rejected from the 
>>> collection.
>>> 
>>> So, the final result is a collection of all even numbers from 1 to 100, 
>>> incrementing by 3 at each step.
>>> 
>>> Share this explanation with colleagues: whatdoesthiscodedo.com/g/a0ec56e
> -- 
> 
> ----------------------------------------------------------------------- 
> Objektfabrik Joachim Tuchel              mailto:jtuc...@objektfabrik.de 
> Fliederweg 1                                 http://www.objektfabrik.de
> D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
> Telefon: +49 7141 56 10 86 0                    Fax: +49 7141 56 10 86 1
> 
> 

Reply via email to