Inaczej traktuje się zmienną w programowaniu funkcyjnym (gdzie idea zmiennej jest zbliżona do zmiennej matematycznej). Podczas wchodzenia obliczeń do kontekstu z którym zmienna jest związana, nadawana jest jej wartość, która nie zmienia się aż do opuszczenia kontekstu. Jednak przy ponownym wejściu w ten kontekst, zmiennej może być przypisana inna wartość niż poprzednio.

Programowanie imperatywne polega w dużej mierze na modyfikowaniu wartości zmiennych (także na podstawie ich wcześniejszych wartości, chociaż nie musi to być regułą).

Typ zmiennej W językach ze statycznym typowaniem zmienna ma określony typ danych, jakie może przechowywać. Jest on wykorzystywany do określenia reprezentacji wartości w pamięci, kontrolowania poprawności operacji wykonywanych na zmiennej (kontrola typów) oraz konwersji danych jednego typu na inny.

W językach z typowaniem dynamicznym typ nie jest atrybutem zmiennej lecz wartości w niej przechowywanej. Zmienna może wtedy w różnych momentach pracy programu przechowywać dane innego typu.