Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni24 pagine

Taccuino Senza Nome

Caricato da

sofia.cric
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni24 pagine

Taccuino Senza Nome

Caricato da

sofia.cric
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 24

de

Lungwaggi

prog na wormand
me

LINGUAGGI IMPERATIVI
· Linguaggi di programmazione più usati
· Basati Sull'architettura di VON Neumann : l'architettura Costituita da Due Elementi FCUdamentali : MEMORIA E PROCESSORE

· il concetto di variabili è centrale

· LE ISTRUZIONI VENCCO ESEGUITE NELL'ORDINE IN CUI APPAIONO NEL PROGRAMMA

· Possono Essere Sia COMPILATI CEX C) .


o IMPLEMENTATI

LINGUAGGI LOGICI
·
sono più di alto Livello rispetto al Lingualci imperativi

· scuo basati su concetti Matematici e Logici

o IMPORTANTISSIMO IL CONCETTO DI RICORSIONE "QUANDO LA FLUZIONE RICHIAMA SE STESSA

·
Codice Non più Eseguito In Ordine Ma seccudo lu albero di Derivazione

a Non Esiste il calcetto di assegnamento e di variabile ( come nei Linguagli imperativil ma esiste il concetto di Unificazione

Linguaggi FUNZIONALI
· mette el centro il concetto di fluzicue

· Fondamentale e il concetto di ricorsione

· Sco Sia COMPILATI CHE INTERPRETAT


I
a b
-

a -ob - a
a cara ,
boobia -o SEK : a -or tipo dell'identità
Il

è cucu c'è Nient'altro con Questo tipo)

Skk M

-
kMCkM1

-
M

Chi sco I Numeri !


Zero =15 z z

S
-d

CzEro 3z = z) a -Db - D
boad
UNO = 1 Sz-pSz - Fluziee Ib-oal -ob 0 a
-

DUE = 1 se -ds(sz) Numerali Di CHURCH scuo Fluzion i n


O I due parametri
reatàl #bobl-o(b-ob) tipo or 3 indoi

TRE - 1 Sz -os(S(52)) &: b o


- b

m = 1sz -
ass ... (Sz)) C: D
-

* ha Questa struttura
M Imb
Fwzi Ha COME RISULTATO
Succ
1
X =
We cent Ent
&

- yz = xy(Yz)

1 Sz-ds(sz) e applico succ a 2


&
- D 1 Yz - <ISz-osse)) y(yz)

Lyz-D YCYCYell

succ2x =

& Ye -o Y (xyzl

c+ 1) G Applico
m volte +1 a zerc
Ottence m

=M

Plum
&m) MOLTIPLICAZIONE
c+-
= m
-
-
M C +
m) wo We Dire NIENTE

& <tr)0= m n -

succ(1ij -0i(i(ij))
-(vz -
-3y(yz)
*
-
1 Y2 -0 (15 0 i (i (ij)) y(yz))

-
(v2 - o
(1j -0 X(y(yj)(yel)
- D(
ULTIMA VERSIONE :
map (t) XS Lista di Fluziari

ZAD [] - = [] Sum
(zap (map (t)+s) ys)
ZAP - tj = []

Zap (f : fs((x : +s) = f+ :


zap fs xs

it [a-ob] -o [a] -o [b]


Ial10/ 2023

[2]
Ex Memorizzata per riche [[12] ,
[45] ,
[18]]
[[,318]]

[[4 , 17 , [58]] Mettere Elementi in


TESTA Alle COLONug
[[4. 7] [38]]
At
,

=
[3] [[247] , [23]] Trasposta

Pust [] = [[]] B Insieme IPCBl=2'B


DWST (X : Xs) = MAp(x) PUSTXS ++ PLST AS

IDEA RICORSIVA
Insiemi che contenco a

E Na

Finiscei n
D
Prim = [x1 + + [2 , m
]
...
,
Factors + = [1, x]]

>Primi

2 . 3 5 .....
,

cacaT :: [Ta]] -
p [a] Tipo = Specifica Di c
PROGRAMMA

folder (++) []

ATTENTICE : NO :
"
ma :
A D

Ex : [ 1 : 2 : 33 ++ 4: 5]

(1 : [2 : 33) ++ [4 , 5]

1: (2 : 3[]) ++ [45])
.
1 (2: (3 : [] ++ [45])

1: <2 : <b : ([] ++ [45])


1: (2: (3 : [45]) I

foldin +o = folde +o

C: ) : a -
> [a] -
> [a]

Ca ob - - oc
b a

fap f + Y =fyx

Cb -oc) - s (b - xd o(a
- x)
- -

C
4
cfgx =
f(g +

c = C ) .

& (+ , y) = 2x +y x)
,

(1, c) coppia iniziale

--

for' fo c = c

for fmc = f(fanf(m -


1)c)
P
REVERSE È l'involuzione (ur) =
v 24/1d2023
REVERSE (REVERSE XS) = XS

REVERSE [] = []

REVERSE (X : XS) = REVERSE XS ++ [x] ROESCIAMENTO LISTA

DIM : CASO BASE : Reverse (reverse []

=REVERSE []

= []

REVERSE (REVERSE (X : SIL

REVERSE (REVERSE XS ++ [X])

REVERSE [XJ ++ REVERSE (REVERSE XS

[x] ++ xS C Def Di ++ cupp [x] = X : []

X : ([] ++ Xs) (Defn ++ 1

X : x S

LEMMA

REVERSE (xs ++ ys(

= REVERSE YS REVERSE XS

DIMOSTRAZICE : REVERSE ([J ++ ys (

=REVERSE YS Cdef di ++ 1

= Reverse ys++ 17 (t] e id destra di ++ 1

= REVERSE YS + REVERSE []

Caso INDUTTIVO : REVERse(x : xs ++ yS) def


I ++

12
..
=Reverse (x cas++yS11
(defeeverse
:

=REVERSE <xs ++ ys) ++ [x]

=Creverse ys ++
reversets)+x]) ipotesi induttive

=REVERSE YS + (Reverse Xs ++ [J (

=REVERSE YSat REVERSE (X : Xs(

manipola programmi come fossero espressioni Logiche

MANIDCUAZICE ALCEBRICA PROGRAMMI HASKELL O LO POSSO FARE IN QUANTO NO HO MEMORIA

A A
OSSERVAZIONE :

&. HEAD =Head . Made (se festretta) (fè stretta se f defined = undefined)
Lo
Dimostrazione parametro : []

Ca Head) [] e c headi)) f
woefined
. = =

estrema
UNDEFINED

-
-
head f [] (
(map

= head []

=CDEFINED

SX & CHEAD (x : +s))

Ex

px()+100 HEAD
Map

(Ex :
=

map
= + +s

map (f g) mep f map I


-
. =

DIM
-
Caso BASE :
map (f .

g) [] = []

-
-
map f(mapg[])
map f []

DASSO Induttivo :

Map (f ·

g) (x : X S) = (f .

g) x :
map (f
.

g) xs
DAssC =
f(g(x) : map (fg)xs
indutto
(
fcg(x)) map fc mapg xs)
= :

= map f cgx :
magxs)
map f c mapg(x : xs)

(map fmapg)(x : xs)

Questa cosa serve per dimostrare correttezza programmi

I J
-D REVERSE [] = []

REVERSE (X : < 3) = REVERsexs ++ [x] FWEICE QUADRATICA

-
specifica programma di cul Riccosca OCME where =
length s
la correttezza)

REVERSE"XS = REVERSE XS
it (1) overloading : per comodità utilizza stesso mame e simboli

(Fractional al =7 a-oa-o a per cose diversie

map :: (a - b) - [a] - [b]

come si definisce una classe


nome classe parametrica rispetto

dada
class Eq a where
-

( =
,
= )
,
(/ =) : a -
0a 0
-
Bool

fx = 1f(x == 3) g x y = If(x) = y) than Tre


them True else false
else false g .. (Ega) =T a - a obool

>it f
CEq a ,
Numal =7 a -- Bool X = y P P(x) = PCY)

x1 = y = mot(x = = y)
t : Book o Book

data Book Quel Fase


I
= due tipi diversi
uno ce me na 2

data SetteNami=Gol
-
sola Quccide
... 2 altro 7

Lettera mauscola per non confonder


con ee variableu

instance Eq Bool
-
where

True == True = True

False == False = True

-=- - - False

Instance SetteNami where data Nat = zerol Succ Nat

----- Teve : t Zera

Nat

t Succ

Instance Eq Nat where Nat-o Nat

Zero == Zero = Thre

C==) Zero Zero : True

Zero ==Succ(x) = False


-

- =: Zero = False

Soccx = = Succy = x = = Y

C (+ 1 Zero Zero True X x


+ = = = y = = = x

C = = 1 (Succx)(Succy) = x = = Y

C = =1 -
- =False

class Ord a => Eg a where


Si definisc
scoeu
O(1)
,
(c = 1
,
(3) , c) = 1 :

a - a - o Bool

mim max : a oa--a


,

min xy : If x Y then x else y

classi im
gerarchic
Instance Ord Nat where

Succ-1Zerc= False

Succ + : Succy

& X LY

Zero L zerc : False

Zero L Succ = True

Potrebbero piacerti anche