ChatGPT clearly likes me more that you. ;-) At least I have one friend!!! On Tue, 17 Jan 2023 at 06:28, Torsten Holmer via use-livecode < use-livecode@lists.runrev.com> wrote:
> I also used chatGPT for looking uo code and I repeated your question. But > this time chatGPT gives a wrong answer! > > —chatGPT: > You will need to specify the group that the button should be added to by > setting the group property of the button. The syntax for this is as follows: > set the group of button [name of button] to [name of group] > > For example, if you wanted to create a button called "myButton" and add it > to a group called "myGroup", you would use the following script: > > create button "myButton“ > > set the group of button "myButton" to "myGroup" > > create button "myButton“ > set the group of button "myButton" to „myGroup" > --- > > It is an error because group is not a property of a button! > So, really be careful with copy&paste programming ;-) > > Cheers > Torsten > > > > > Am 14.01.2023 um 22:14 schrieb Kaveh via use-livecode < > use-livecode@lists.runrev.com>: > > > > I just tried Google to the answer to a problem. Didn't get it first time, > > so tried ChatGPT. I asked: > > > > *How do I add a button to a group in LiveCode using a script?* > > > > I got: > > > > *create button "myButton" in group "myGroup"* > > > > > > *This command creates a new button object with the name "myButton" and > > places it inside the group "myGroup".* > > Just what I needed. > > > > You can also set properties of the button > > > > On Sat, 14 Jan 2023 at 20:09, Mark Smith via use-livecode < > > use-livecode@lists.runrev.com> wrote: > > > >> Thanks for posting this Geoff. It’s the first time I've seen a ongoing > >> dialog between a programmer and Chat GPT and the first thing I am > struck by > >> (but not the only thing) is it’s ability to deal with human ambiguity. > For > >> example, you ask it to modify the code to be an “on mouseUp handler in a > >> button". But nowhere in its response is there any sign of a button. It > just > >> totally ignored that part of your request. The code it provides works > in a > >> card, a stack, a graphic image, an svg widget, in fact, in anything that > >> accepts mouseUp input. And yet, it didn’t worry itself about that. Very > >> interesting. It’s kind of like, “this works in a button, so good > enough”. > >> That is not the kind of “nuance” I am used to expecting from an AI. So, > >> progress has clearly been made in interpreting what humans say (or ask) > in > >> a very loose way. > >> > >> The 2nd, and perhaps more astounding example, is when you ask it to > >> "rewrite the code to be a function that takes an argument "n", repeats > with > >> 1 to n, and returns the results”. > >> > >> The really clever bit here is not that it rewrites the previous code > into > >> a function, but that it removes the bit about "put fizzbin into field > >> “display””. How does it know that putting the result in a field is NOT > the > >> typical responsibility of a function? How does it know that that step > needs > >> to occur AFTER the function call? That is so high-level that I am sure > lots > >> of beginning programmers have made that mistake. It even comments on it > in > >> the documentation. So there is some very deep semantic understanding of > >> programming code that is going on here. Because, you did not ask it to > do > >> that, but the fact that it did it anyway indicates it clearly > understands > >> what the purpose of a function is. > >> > >> Quite weird for me to comprehend how it knows that. Unless of course, > you > >> were somehow more specific than your examples illustrate. > >> > >> Mark > >> > >>> On 14 Jan 2023, at 3:22 am, Geoff Canyon via use-livecode < > >> use-livecode@lists.runrev.com> wrote: > >>> > >>> So just now I put this in to chatgpt: > >>> > >>> "fizz bin" is a program that counts from 1 to 100, replacing every > number > >>> divisible by 5 with "fizz" and every number divisible by 7 with "bin"; > >> and > >>> numbers divisible by both 5 and 7 with "fizz bin". Write code in the > >>> programming language livecode to execute "fizz bin" > >>> > >>> This is what ChatGPT responded with: > >>> > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" > >>> else if x mod 5 = 0 then > >>> put "fizz" > >>> else if x mod 7 = 0 then > >>> put "bin" > >>> else > >>> put x > >>> end if > >>> end repeat > >>> > >>> That works as-is, but obviously the results fly by in the message box. > >> So I > >>> put a field and a button on a card, and edited to this, and it works > >>> perfectly: > >>> > >>> on mouseUp > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & cr after fld 1 > >>> else if x mod 5 = 0 then > >>> put "fizz" & cr after fld 1 > >>> else if x mod 7 = 0 then > >>> put "bin" & cr after fld 1 > >>> else > >>> put x & cr after fld 1 > >>> end if > >>> end repeat > >>> end mouseUp > >>> > >>> Then as I was typing this email I realized I was potentially selling > >>> chatgpt short, so I put this in: > >>> > >>> Modify that code so it works as an "on mouseUp" handler in a button, > and > >>> concatenates the results on individual lines, and puts the final result > >>> into the field "display" > >>> > >>> And it output this: > >>> > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> And it followed that with instructions: > >>> > >>> This code uses the "on mouseUp" handler to execute the script when the > >>> button is clicked. The results are concatenated and separated by a new > >> line > >>> using the "& return" operator after each output. The final result is > >> placed > >>> into a field with the name "display" using the "put" command. > >>> > >>> I'll save you the trouble: that code executes perfectly right out of > the > >>> box, with no errors, and of course even though I didn't ask it to, it > >> uses > >>> a variable to store the intermediate values, saving the field update > for > >>> the end. > >>> > >>> If I were writing it, I'd probably do something like > >>> > >>> on mouseUp > >>> put "" into fizzbin > >>> repeat with x = 1 to 100 > >>> if x mod 5 = 0 then put "fizz " after fizzbin > >>> if x mod 7 = 0 then put "bin " after fizzbin > >>> if char -1 of fizzbin is space > >>> then put return into char -1 of fizzbin > >>> else put x & return after fizzbin > >>> end repeat > >>> put fizzbin into field "display" > >>> end mouseUp > >>> > >>> That might be a bit faster, but probably not as clear. > >>> > >>> Finally, I gave it the input: > >>> > >>> Now rewrite the code to be a function named "fizzbin" that takes an > >>> argument "n", repeats with 1 to n, and returns the results. > >>> > >>> function fizzbin n > >>> put "" into fizzbin > >>> repeat with x = 1 to n > >>> if x mod 5 = 0 and x mod 7 = 0 then > >>> put "fizz bin" & return after fizzbin > >>> else if x mod 5 = 0 then > >>> put "fizz" & return after fizzbin > >>> else if x mod 7 = 0 then > >>> put "bin" & return after fizzbin > >>> else > >>> put x & return after fizzbin > >>> end if > >>> end repeat > >>> return fizzbin > >>> end fizzbin > >>> > >>> This works perfectly, and chat gpt also documents its answer: > >>> > >>> This code defines a function named "fizzbin" which takes an argument > "n" > >>> that determines the range of the repeat loop. The function builds the > >>> result string in a variable "fizzbin" and return the final result. The > >>> calling script can then use the returned value for further processing > or > >>> for displaying in a field. > >>> > >>> Grammatical issue notwithstanding, that's good documentation. > >>> _______________________________________________ > >>> use-livecode mailing list > >>> use-livecode@lists.runrev.com > >>> Please visit this url to subscribe, unsubscribe and manage your > >> subscription preferences: > >>> http://lists.runrev.com/mailman/listinfo/use-livecode > >> > >> _______________________________________________ > >> use-livecode mailing list > >> use-livecode@lists.runrev.com > >> Please visit this url to subscribe, unsubscribe and manage your > >> subscription preferences: > >> http://lists.runrev.com/mailman/listinfo/use-livecode > >> > > > > > > -- > > Kaveh Bazargan PhD > > Director > > River Valley Technologies <http://rivervalley.io> ● Twitter > > <https://twitter.com/rivervalley1000> ● LinkedIn > > <https://www.linkedin.com/in/bazargankaveh/> ● ORCID > > <https://orcid.org/0000-0002-1414-9098> ● @kaveh1000@mastodon.social > > <https://mastodon.social/@kaveh1000> > > *Accelerating the Communication of Research* > > _______________________________________________ > > use-livecode mailing list > > use-livecode@lists.runrev.com > > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > > http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > -- Kaveh Bazargan PhD Director River Valley Technologies <http://rivervalley.io> ● Twitter <https://twitter.com/rivervalley1000> ● LinkedIn <https://www.linkedin.com/in/bazargankaveh/> ● ORCID <https://orcid.org/0000-0002-1414-9098> ● @kaveh1000@mastodon.social <https://mastodon.social/@kaveh1000> *Accelerating the Communication of Research* _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode