Gå til innhold

Hva kan C++ brukes til?


Anbefalte innlegg

Hei! jeg her helt blank på programmering ( eneste jeg har gjort er litt mirc scripting og litt vb ) Men jeg lurer på om jeg skal kanskje prøve å lære meg litt c++.. ? Men lurer egentlig på hva man lager med C++. Sånn som jeg har forstått det så er det litt grafikk og sånn, men kan ikke noen utdype det litt? hva bruker dere c++ til?

Lenke til kommentar
Videoannonse
Annonse

C++ kan brukes til nær sagt alt. Det er mest hensiktsmessig å bruke C++ til større prosjekter (større programmer, spill, osv), men du kan fint bruke C++ til små hjelpeprogrammer o.l. også.

 

Dersom du bruker C++ er det i alle fall ikke språket som setter begrensningene.

Lenke til kommentar
C++ kan brukes til nær sagt alt. Det er mest hensiktsmessig å bruke C++ til større prosjekter (større programmer, spill, osv), men du kan fint bruke C++ til små hjelpeprogrammer o.l. også.

 

Dersom du bruker C++ er det i alle fall ikke språket som setter begrensningene.

Okai! thx! :D

Lenke til kommentar

(defun addn (n)
 #'(lambda (x)
   (+ x n)))

 

Denne funksjonen (skrevet i Common Lisp) tar en parameter n, og returnerer en funksjon som tar en parameter x og legger til tallet n. Ganske tøfft? Dette går ikke å uttrykke i C++.

 

Jeg har vanskelig for å forklare det jeg skal frem til nå, men det kan kanskje sammenlignes med at det finnes (menneske)språk der man for tall kun har ett ord, så når man skal uttrykke at det er tre epler, så må man si:

"Det er nuff nuff nuff epler!"

 

Det går fint å uttrykke alle tall i dette språket, men det er ikke hensiktsmessig. Derfor har man laget et "språk" - eller et (tall)system som er mer hensiktsmessig:

"Det er 3 epler!"

 

Ved hjelp av begge språkene kan man uttrykke de samme tingene, men det er ikke like lett eller hensiktsmessig i begge to.

 

Ha dette i bakhodet når du prøver ut forskjellige språk, enten nå eller siden.

 

Edit x:

Ta forøvrig en titt: http://www.research.att.com/~bs/applications.html

Endret av søppel3
Lenke til kommentar

den lambdaen må vel kalle opp funksjonen igjen bare denne gangen med n - 1?

ellers så ser jeg ikke helt åssen den kan telle riktig.. altså returnerer den en funksjon som igjen kaller opp hovedfunksjonen? syns ikke det kommer veldig klart utfra den funksjonen der, da er det mye lettere å lese denne i haskell som gjør akkurat det samme

 

addn 1 = 1

addn n = (\x -> x + addn (x - 1)) n

Endret av saboi
Lenke til kommentar

(defun  addn (n)
 #'(lambda (x)
   (+ x n)))

..nå kan jeg si:

(setf (symbol-function 'add-3) (addn 3))

(add-3 3)

6

(add-3 2)

5

..og..

(setf (symbol-function 'add-4) (addn 4))

(add-4 4)

8

 

Jeg regner med at dette taler for seg selv.

Endret av søppel3
Lenke til kommentar

joda jeg tviler ikke på at det funker

 

men hva gjør alt det set-greiene? det ser ut som om du bare lager en vanlig loop som kaller funksjonen 4 ganger med parameteren 4 f.eks?

 

hvorfor kan du ikke kalle den som en vanlig funksjon? addn (4)

Lenke til kommentar
Denne funksjonen (skrevet i Common Lisp) tar en parameter n, og returnerer en funksjon som tar en parameter x og legger til tallet n.

 

(setf (symbol-function 'add-4) (addn 4))

 

"add-4" er nå navnet på funksjonen som returneres fra addn-funksjonen.

Lenke til kommentar

Eller hva med dette:

(defun doStuff (what parameter)
 (funcall what parameter))

 

(doStuff (lambda (x) (+ x 3)) 4)

7

 

Jeg sender to parametere til doStuff:

* En funksjon som tar en parameter og legger 3 til den parameteren: (lambda (x) (+ x 3))

* Tallet 4

 

...og doStuff returnerer dermed 7.

Endret av søppel3
Lenke til kommentar

ok.. det var jo litt teit at hvis man f.eks skal gjøre addn 10 så må man lage navn på funksjonen den returnerer.. i haskell eksempelet er det bare å kalle addn som den er. jeg trodde det var meningen med lambdas, at de ikke skulle ha navn. det blir jo feil også siden addn 4 ikke skal bli 8 men 10..

Lenke til kommentar

Oki, ja - det går å gjøre det direkte også så klart:

 

(funcall (addn 4) 4)

8

 

..men i Common Lisp går ikke dette:

((addn 4) 4)

 

..som hadde vært mer naturlig kanskje. Mener det går i Scheme da.

 

Edit:

Ikke lambda dette - det er sending/returnering av funksjoner "rundt om kring".

Endret av søppel3
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...