|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Mar 2010
Messaggi: 2
|
[haskell] questo sconosciuto
ciao a tutti!
mi sto cimentando con la programmazione in haskell, senza grossi risultati a dire il vero.... sto cercando un'illuminazione principalmente: un qualcosa che mi possa aiutare a capire qual è la logica che devo adottare per programmare. oltre a questo, sono in difficoltà nel cercare di capire come definire le matrici intese come liste di liste: io ho scritto questo codice Codice:
mat_dim::[[a]]->(Int,Int) mat_dim xxs=(length xxs, length xxs) dopo ore di riflessione sono giunto al nulla.... |
![]() |
![]() |
![]() |
#2 | ||
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Se hai qualche dubbio specifico prova a chiedere che magari mi riesce di esserti utile. Quote:
Codice:
matDim :: [[a]] -> (Int,Int) matDim m = (length m,length (head m))
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
||
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Mar 2010
Messaggi: 2
|
il problema è che non ho dubbi specifici, se non su specifici esercizi: capisco che il problema principale che ho è quello di non riuscire a staccarmi dalla normale programmazione, ma non so in che modo!
nel codice che hai scritto ad esempio, fatico a capire il ruolo della head... io alla fine ero riuscito a scrivere Codice:
dim::[[a]]->(int,Int) dim (xs:ys)=(length xs, 1+length ys) più vado avanti e più avrei voglia di smettere! PS: grazie per le dritte sul coding style |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Prova a seguire un libro... tipo questo...
http://book.realworldhaskell.org/read/ ...che è gratuito e online. Fatti gli esercizi alla fine dei capitoli e vedrai che migliorerai.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
![]() Nel tuo caso la tua soluzione e' corretta, anche se "per sbaglio" tieni presente che stai usando una lista di liste, ovvero una lista di righe Ad esempio la matrice [code] | 1 2 3 | | 4 5 6 | | 7 8 9 | [code] avra' come righe le tre liste Codice:
[1,2,3] [4,5,6] [7,8,9] Codice:
[[1,2,3], [4,5,6], [7,8,9]] Ora il tuo codice Codice:
dim::[[a]]->(int,Int) dim (xs:ys)=(length xs, 1+length ys) Codice:
dim matrix = let xs = head matrix ys = tail matrix in (length xs, 1 + length ys)
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:26.