Golfande golfare?
Re: Golfande golfare?
Jo... jag tänker som så att enbart använda sig av 'core' utav perl, python etc, och enbart coreutils vad gäller bash. Detta förenklar också för andra att testa det man skrivit, då de icke behöver dra in massa konstiga, externa prylar.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
-
- Inlägg: 3375
- Blev medlem: 06 sep 2008, 07:46
- OS: Crunchbang
- Utgåva: Vet inte/ingen utgåva passar
Re: Golfande golfare?
Ursäkta att jag som entusiast "kravlar in" ....................men om ni skulle få till en "bågskytte-version" också..............ja då finns det en risk att jag börjar med datorspel. 

- Ulsak
- Inlägg: 4808
- Blev medlem: 06 aug 2007, 19:04
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Golfande golfare?
Konservburk rules ( utan att för den skull ta heder och ära av dmz, katt och ni andra überkodare)
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
dmz skrev:Hur skall vi förhålla oss till externa moduler/applikationer? Jag noterar att t.ex bc inte tillhör coreutils; är inte detta ansett som fusk, eller skall vi enbart köra på kortast möjliga kod? Om jag skulle begagna mig av en extern modul så borde ju nästan denna modulen, eller åtminstonde koden för den aktuella funktionen, även räknas? :p
Kallar du bc för en "extern applikation" så kan du lika gärna kalla även perl, python, ruby, mfl för externa applikationer. Alla dessa är programmeringsspråk och bc fanns faktiskt med redan på 70-talet i unix v7 och är dessutom (till skillnad från perl) med i posix-standarden, dvs den standard som talar om vad som ska finnas med i ett komplett unix-system.dmz skrev:Jo... jag tänker som så att enbart använda sig av 'core' utav perl, python etc, och enbart coreutils vad gäller bash. Detta förenklar också för andra att testa det man skrivit, då de icke behöver dra in massa konstiga, externa prylar.
http://en.wikipedia.org/wiki/Bc_programming_language
http://minnie.tuhs.org/UnixTree/V7/usr/ ... /bc.1.html
http://www.opengroup.org/onlinepubs/969 ... es/bc.html
Men du har trots allt en poäng. Det finns ju programmeringsspråk där t.ex. fakulteten av ett tal kan skrivas ut med bara tal! och inte ett tecken mer än så. Och att komma med någon konstig modul som gör hela jobbet kan jag hålla med om är fusk. Så var drar vi gränsen isf?
Mitt förslag är att man alltid får använda allting som finns med från början i en vanlig standardinstallation av ubuntu-9.10. Om man vill använda ett programmeringsspråk som inte finns med från början så måste man hålla sig till en standardinstallation av detta språk från standardförråden,
t.ex. sudo apt-get install ruby eller motsvarande.
Re: Golfande golfare?
Jag jämför coreutils med core av valfritt programmeringsspråk, och då är bc i högsta grad en extern applikation. Jag är dock medveten om att bc är standard i flera distributioner, och det var inte bc som sig jag syftade på, utan frågan om man skall få använda externa applikationer. Fair enough.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Och isf är även perl i ännu högre grad en "extern applikation"dmz skrev:Jag jämför coreutils med core av valfritt programmeringsspråk, och då är bc i högsta grad en extern applikation.

Jag skulle nog inte kalla coreutils för standard. Det finns en del där som inte är med i posix och därför inte kan förväntas finnas med i t.ex. icke-gnu-baserade system som bsd och liknande.
Mitt förslag är som sagt standardinstallation av ubuntu och standardintallation av det programmeringsspråk man vill använda.
- Katt
- AVREGISTRERAD
- Inlägg: 625
- Blev medlem: 19 nov 2009, 11:04
- OS: Arch Linux
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Bohuslän
- Kontakt:
Re: Golfande golfare?
Verkar som du vunnit den här omgången dmz, så kör på ett nytt problem.
Det är inte lätt när det är svårt!
Re: Golfande golfare?
Problem 3: Skapa en interaktiv kalkylator i stil med bc som klarar åtminstonde de fyra räknesätten.
Applikationen skall kunna avslutas genom att ange 'exit', 'quit', eller önskad sträng.
Det måste vara enkelt att skilja på input och output, t.ex:
Att bara skriva 'bc' räknas inte. :p
Applikationen skall kunna avslutas genom att ange 'exit', 'quit', eller önskad sträng.
Det måste vara enkelt att skilja på input och output, t.ex:
Kod: Markera allt
In> 100/3*3
Out> 100
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Golfande golfare?
Känns väldans tråkigt att golfa ensam pojkar. Var det för simpelt måntro? 
Perl, 37 chars:
Visst känns det äckligt härligt att koda så fult och strunta i allt vad god sed heter...

Perl, 37 chars:
Kod: Markera allt
while(<>){die if/q/;print'='.eval,"\n"}
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
- Katt
- AVREGISTRERAD
- Inlägg: 625
- Blev medlem: 19 nov 2009, 11:04
- OS: Arch Linux
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Bohuslän
- Kontakt:
Re: Golfande golfare?
Tänkte först fuska till det med :
Men det är inte coreutils 
Jag får se när jag pillar ihop ett nytt script, har lite annat att göra just nu
Kod: Markera allt
echo "calc $1"

Jag får se när jag pillar ihop ett nytt script, har lite annat att göra just nu

Det är inte lätt när det är svårt!
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Jag har varit upptagen i en vecka, men fortsätter gärna nu.dmz skrev:Känns väldans tråkigt att golfa ensam pojkar. Var det för simpelt måntro?
Jag tänker vara riktigt ful och utnyttja alla kryphål jag kan hitta.dmz skrev:Problem 3: Skapa en interaktiv kalkylator i stil med bc som klarar åtminstonde de fyra räknesätten.
Applikationen skall kunna avslutas genom att ange 'exit', 'quit', eller önskad sträng.
Det måste vara enkelt att skilja på input och output, t.ex:Att bara skriva 'bc' räknas inte. :pKod: Markera allt
In> 100/3*3 Out> 100

Du ska få se på äckligt härliga grejer...dmz skrev:Visst känns det äckligt härligt att koda så fult och strunta i allt vad god sed heter...
Försök 1 (25 tecken):
Kod: Markera allt
!#/bin/bash
while read i;do $[i];done
Kod: Markera allt
bash$ while read i;do $[i];done
2-3
bash: -1: command not found
2+3
bash: 5: command not found
önskad sträng
bash: önskad sträng: syntax error in expression (error token is "sträng")
bash$
Men jag vill förstås göra det lite snyggare, om än längre...
Försök 2 (36 tecken):
Kod: Markera allt
#!/bin/bash
while read i;do echo =$[i];done 2>&-
Kod: Markera allt
bash$ while read i;do echo =$[i];done 2>&-
2-3
=-1
2+3
=5
önskad sträng
bash$
- Ulsak
- Inlägg: 4808
- Blev medlem: 06 aug 2007, 19:04
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Göteborg
Re: Golfande golfare?
varför ger 3^3 output =0 ?
Re: Golfande golfare?
Haha, så snyggt med just 'önskad sträng'. Grattis.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Därför att ^ i det här fallet betyder bitvis xor. Vill du räkna ut upphöjt till så du måste skriva 3**3 istället.Ulsak skrev:varför ger 3^3 output =0 ?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Jag älskar kryphåldmz skrev:Haha, så snyggt med just 'önskad sträng'. Grattis.

Vi kör ett nytt problem direkt:
Problem 4: Byt ut första tecknet i en fil med det sista tecknet i samma fil.
* Programmet ska startas med program filnamn
* Om filen innehåller 2 eller flera tecken så ska programmet flytta det första tecknet så att det hamnar sist och samtidigt flytta det (tidigare) sista tecknet så att det istället hamnar först.
* Om filen innehåller färre än 2 tecken så ska den inte ändras alls.
Exempelvis så ska en fil som innehåller strängen abcde ändras av programmet så att den i fortsättningen innehåller strängen ebcda istället.
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Jag kom just på hur man kan korta ner förra problemet ytterligare...
Fulversionen (14 tecken):
Finversionen (24 tecken):
Båda varianterna måste sparas i en körbar fil och startas med skriptnamn.sh för att det ska fungera (eftersom de anropar sig själva med $0). Tänka sig att den nya finversionen till och med blev kortare än den gamla fulversionen!
Fulversionen (14 tecken):
Kod: Markera allt
#!/bin/bash
read i;$[i];$0
Kod: Markera allt
#!/bin/bash
read i;echo =$[i];2>&-$0
Re: Golfande golfare?
... Samma här, 17 chars. :pKonservburk skrev:Jag kom just på hur man kan korta ner förra problemet ytterligare...
Kod: Markera allt
warn eval while<>
Kod: Markera allt
» perl test.pl
1-2
-1 at test.pl line 21, <> line 1.
(4*4)/2
8 at test.pl line 21, <> line 2.
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
Re: Golfande golfare?
Bara för att vara på det klara, angående problem 4, skall ändringen enbart skrivas till stdout eller till filen ifråga?
ǁ A: Because it obfuscates the reading.
ǁ Q: Why is top posting so bad?
ǁ Q: Why is top posting so bad?
- Konservburk
- Inlägg: 5919
- Blev medlem: 07 apr 2007, 22:28
Re: Golfande golfare?
Jag tänkte mig att ändringen ska skrivas till filen... om det även skrivs något till stdout eller inte spelar mindre roll.dmz skrev:Bara för att vara på det klara, angående problem 4, skall ändringen enbart skrivas till stdout eller till filen ifråga?
-
- Inlägg: 378
- Blev medlem: 24 maj 2007, 01:53
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Kalmar/Luleå
- Kontakt:
Re: Golfande golfare?
Här kommer mitt försök på 27 tecken
testkörning:
Kod: Markera allt
#!/bin/bash
a=$(cat $1);echo $a|rev>$1
Kod: Markera allt
$ cat test
sumabib ogre
$ ./upg4.sh test
$ cat test
ergo bibamus
Hur jag än gör så slutar det alltid med E17 på netbooken....