I asked it for a NeoCSV example, because the documentation is out of date
with the Pharo 10. I asked it to do some simple saving of data to a file.
It gave me code that didn't work in Pharo 10, I told it about the DNUs on
the csvwriter and that I was using Pharo 10. It then apologized and said
the messages were later introduced in Pharo 50 (!). I then questioned its
understanding and it apologized and said it had been confused and that it
was giving me code for Pharo 5.0. It seems to have trouble with versions
and quick changing APIs. So, we are teaching ChatGPT about smalltalk, too,
when we try to use it.

On Wed, 15 Mar 2023 at 07:35, Esteban Maringolo <emaring...@gmail.com>
wrote:

> It is good with boilerplate code (e.g. SQL queries) or general algorithm
> structures. But i.e. I asked it to write me a method to parse a string
> (e.g. ISO 8601) and turn it into a DateAndTime, and then asked to write it
> as an Excel formula.
>
> It works much better when you can spot the mistakes, you can tell them to
> add some considerations to the code or even point the LLM to correct a
> message selector to something else. Sometimes you ask it to reprogram
> something and it won't do it, as if it doesn't understand what you're
> asking.
>
> It is not an expert yet, but it is a great assistant. The only thing is
> that is sure is that it will get better.
>
> Best regards,
>
> Esteban A. Maringolo
>
>
> On Wed, Mar 15, 2023 at 7:49 AM Tim Mackinnon <tim@testit.works> wrote:
>
>> "#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>
>> <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 
>> <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
>>
>>
>>
>>

-- 
Christopher Fuhrman, P.Eng., PhD

*Professeur au Département de génie logiciel et des technologies de
l'informationÉTS (École de technologie supérieure)*

http://profs.etsmtl.ca/cfuhrman
+1 514 396 8638
<https://www.etsmtl.ca/activites-et-services-aux-etudiants/services-aux-etudiants/aide-psychologique>
 Je fais partie du réseau des Sentinelles
<https://www.etsmtl.ca/activites-et-services-aux-etudiants/services-aux-etudiants/aide-psychologique>
 ÉTS

*L'ÉTS est une constituante de l'Université du Québec*

Reply via email to