Gå til innhold

ProgrammeringsBaren! Småprat, om det du elsker!


Anbefalte innlegg

Videoannonse
Annonse
Hvis jeg nevner at jeg skriver 90% i COBOL på jobben burde det gi meg nok kredibilitet.

 

Svar på Project Euler #218 ønskes fortsatt desperat!

 

Jeg synes kombinasjonen av projecteuler og cobol gir deg kredibilitet. Spesielt hvis du *løste* oppgavene 1-217 *i* cobol :) (jeg slapp dessverre opp for enkle problemer halvveis og fant det vanskelig å motivere meg selv å løse flere deg. Må få lurt steingrim til å hjelpe meg).

Lenke til kommentar
Jeg synes kombinasjonen av projecteuler og cobol gir deg kredibilitet. Spesielt hvis du *løste* oppgavene 1-217 *i* cobol :)

Hehe, så gal er jeg nok ikke. Tror ikke det hadde gått an innen rimelig tid i COBOL uansett.

Brukte Lisp, Haskell og Matlab/Mathematica stort sett.

Endret av Goophy
Lenke til kommentar
Hvorfor er emacs lisp så spesielt?

Åpen kildekode og transparent eksekvering.

 

«Åpenhet» i en bredere betydning. Som du vet er det spesielle med Emacs at hele editoren er skrevet i Emacs Lisp, slik at koden for enhver funksjon kan slås opp med et par tastetrykk. Der andre programmer avgrenser slik transparens til et eget rammeverk for innpluggingsmoduler, trygt isolert fra alle forretningshemmelighetene i den lukkede hovedkoden, gir Emacs deg tilgang til hele maskineriet uten forbehold – mens du har Emacs oppe.

 

Hvis jeg lurer på hva en av piltastene gjør, for eksempel, trykker jeg C-h k <up> og får opp dokumentasjonen for previous-line, samt definisjonen i Emacs Lisp. Ethvert element i koden er tilsvarende dokumentert, og funksjonen kan modifiseres med øyeblikkelig virkning – i mitt oppsett rydder den bort mellomrom på slutten av linjen mens jeg navigerer rundt i bufferen. Emacs lar meg modifisere Emacs mens Emacs kjører.

 

Noen sa at tilgang til kildekoden gir brukerne større frihet, og mang en bruker har lastet ned en drøss med kryptiske .c-filer uten å bli det spøtt klokere. Emacs setter koden i kontekst ved å eksekvere den. Det er fryktelig instruktivt å ikke bare kunne lese om, men også se hva en bestemt funksjon gjør, umiddelbart – uansett dens plassering i maskineriet. («Example is the school of mankind, and they will learn at no other.»)

 

Vi trenger flere og bedre verktøy for å lære av hverandres innovasjoner, som er hva åpen kildekode egentlig handler om. Åpen kildekode er mer enn å bare slenge på en lisens – det innebærer også praktisk tilrettelegging for bruk av koden. Emacs’ måte er uforbeholden transparens. Jeg skulle ønske jeg kunne få dét også i Visual Studio og Vim.

Endret av ....
Lenke til kommentar

Oki, Java relatert spørsmål. Jeg lager et binærtre og noe er feil et sted. Så et lite spørsmål angående objekter.

En node er definert med en klasse. Hver node har to subnoder, den venstre og en høyre. Når jeg skal sitte inn noe så blir det ikke registret. La oss si at treet har kun et element. Et tall, nummer 5. Hvis sitter inn 4 så skal det havne i root.LChild. Det jeg putter inn i root.LChild er altså et objekt av Node klassen min som har en variabel ved navn data hvor 4 tallet er lagret. Koden hvor dette skjer ser slik ut:

 

digginDeeper=tmpNode//DigginDeeper er root.getLChild parset som en parameter til en rekursiv funksjon

root.getLChild == null //Blir true

 

digginDeeper er root.LChild og tmpNode er 4 tallet.

Dette er en rekursiv funksjon så root.lChild er en parameter, hvis jeg tester dette rett etterpå er den jo null?

Altså, root.getLChild == null. Wtf, jeg har jo parset den. Greit, den jo faktisk null når den blir parset fordi den noden ikke inneholder en node enda. Det er noe med pointere og referanseverdier jeg ikke har forstått.

 

Mye rot og mye mas, en is på den som hjelper. :innocent:

Lenke til kommentar

Neida, det er bare en liten endring som må til. Eneste grunnen til at det ikke fungerer er fordi du «forsinker» tilordningen en iterasjon for mye. Så i stede for å kalle «blindt» på InsertNode, så kan du sjekke de fire mulighetene, og ved to av dem så kaller du ikke InsertNode, men setter variablen.

 

Den skal til høyre && høyre == null

Den skal til høyre && hoyre != null

Den skal til venstre && venstre == null

Den skal til venstre && venstre != null.

Lenke til kommentar

Greit, jeg jobber litt videre med treet mitt. Sakset følgende fra Wikipedia:

* Deleting a leaf: Deleting a node with no children is easy, as we can simply remove it from the tree.

* Deleting a node with one child: Delete it and replace it with its child.

* Deleting a node with two children: Suppose the node to be deleted is called N. We replace the value of N with either its in-order successor (the left-most child of the right subtree) or the in-order predecessor (the right-most child of the left subtree).

 

Greit nok, jeg forstår de to øverste. Den nederste sliter jeg litt med. La oss si at N er root i det treet jeg har tegnet under. Da er det enten 15 eller 25 som skal erstatte root noden, også videre nedover må jeg også oppdaterer at 15 eller 25 flyttes opp til topps? Hvis treet er stort blir dette stress jo. Er det sånn det skal gjøres?

Her blir det jo bare å flytte opp venstre subtre til 15 eller 25, da tenker jeg rett? Lurer bare litt på hvordan jeg skal implementere dette sånn at alle ledd blir "shufflet" opp riktig hvis man sletter rooten i et stoooort tre.

 

post-24640-1240699503.jpg

Lenke til kommentar

Hai hå! En ting som plager meg litt her. I video-forelesningene til SICP, og de driver å snakker om register-maskiner.

 

Først så har de en tenkt 7-register-maskin, og skriver et program som kan evaluere lisp-kode. Denne evaluatoren er jo da skrevet i et assembly-liknenede språk. Så sier de etterpå at dersom maskinen bare skal kjøre kompilert kode, så trenger den bare 5 register. Enten så missforstår jeg noe, eller så greier jeg bare ikke å se det.

 

Dersom man skriver en evaluator og kompilerer den for en 5-regsiter-maskin, så vil jo denne gjøre akkurat det samme som 7-register-maskinen. Og instruksjon-settet er jo det samme, bare det at den har to mindre register. Hvorfor i granskauen kan man ikke da «skrive om» koden som ble brukt i 7-register-maskinen på samme måte som kompilatoren gjør?

Endret av Blackslash
Lenke til kommentar
  • 2 uker senere...

Leste gjennom noen gamle Usenet-diskusjoner fra 2002 og kom over følgende utblåsning:

 

Screwed-up initial design together with endless reinvention is why IT is such a disaster. C not good enough for you? Let’s have C++, or this other version of C++, or this one. No, let’s reimplement in Java. Or C#. Or Python. Perl. Ruby. SGML no good? […] Just reinvent everything once again, use XML (it must work, it’s so big and complicated by now – how can anything that big not work), and we’ll all get rich this time. Right. Sure. I’ll just do something else, if you don’t mind.

Hvor mye lenger har vi kommet siden den gang? Det er mye revolusjon, men lite evolusjon. Spørsmålet er: Hvilke av dagens plattformer vil bestå inn i fremtiden, og er verdt å investere i?

Endret av ....
Lenke til kommentar
Spørsmålet er: Hvilke av dagens plattformer vil bestå inn i fremtiden, og er verdt å investere i?

 

C/C++ kan jeg ikke se for meg dø ut .... vel de fleste vil sikkert overleve... folk skriver jo fortsatt kode i COBOL og det stammer fra 1959.

 

Jeg syntes ikke at IT er en katastrofe og syntes det er bra at nye bedre ting kommer.

 

tenke tenke... assembly vil helt sikkert overleve... sats på det du.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...