プログラムに状態は必要なんだろうか?

まったく的外れかも知れないけれど。

オブジェクト指向の考え方でプログラムを作っていて、オブジェクトの状態をどのように管理するかで考えがごちゃごちゃになり、自分にはオブジェクト指向は無理なのかもと思って、Haskellの本読んだり している。
Haskellかぶれの今の自分には「状態」が悪に見える。プログラムに状態がなかったらどうなるだろう? プログラムに状態は必要なんだろうか?

Wikipediaオートマトンチューリングマシンのところには、次のように書いてあった。

次のような特徴を持ったシステムのことである。

  • 外から、連続している情報が入力される
  • 内部に「状態」を保持する
  • 外へ、何らかの情報を出力する

wikipedia:オートマトン

チューリングの仮想機械は、

  • 無限に長いテープ
  • その中に格納された情報を読み書きするヘッド
  • 機械の内部状態を記憶するメモリ

で構成され(以下略)
wikipedia:チューリングマシン

両方とも、特徴の3つのうちの1つが「状態」に関することだ。これを見ると、プログラムにとって状態は必然のように思える。

一方、ラムダ計算というものがある。

wikipedia:ラムダ計算

Wikipediaによると、これはチューリングマシンと等価な数理モデルだということだけれど、ラムダ計算には「状態」が出てこない。なぜだろう? チューリングマシンと等価なのに状態がないのだろうか。ひょっとして、状態がなくてもプログラムが作れる?

頭が悪い自分には、まったくわけがわからない。状態って必要なんだろうか。