# onomatopoeettinen alkoholiliike tcl-versio, jonka teki cell, joka varasti
# idean psilonilta, joka varasti idean ionilta, joka varasti idean rennexiltä.
# Tällä ohjelmalla eikä kielellä ole mitään tekemistä olio-ohjelmoinnin kanssa


namespace eval ::alkoholi {
	proc elucka giraffi { namespace eval $giraffi { proc sanoo {{miten ""} {kliimaksi ""}} {
		regsub -all -- {.*::} [namespace current] {} elucka
		set sanat "\n\
			$elucka sanoo $miten, $miten\n\
			$elucka sanoo $miten, $miten\n\
			Kuinka [string tolower $elucka] sanoo, kuinka [string tolower $elucka] sanoo,\n\
			kuinka [string tolower $elucka] sanoo $kliimaksi?\n\
			$elucka sanoo $miten, $miten"
			eval " \
			namespace eval toiminta { \
				proc print \"\" { \
					if {\[string compare {$kliimaksi} \"\"\]} {puts {$sanat} } else { puts {$miten} } ;\
					return [namespace current] \
				} \
			} \
			" 
			return [namespace current]::toiminta
	} } ; return [namespace current]::$giraffi }

	## le biisi

	[[elucka Kana]::sanoo "kot kot kot" Cabana]::print
	[[elucka Karhu]::sanoo "mur mur mur" Karhu]::print
	[[elucka Gorilla]::sanoo "\n\
		Gorilla sanoo yääärrauhrhha\n\
		Gorilla sanoo yhhrräähh rhähhrrääh\n\
		Kuinka gorilla sanoo, kuinka gorilla sanoo,\n\
		kuinka gorilla sanoo Carillo?\n\
		Gorilla sanoo öährrh - Bundolo!\n\
	"]::print
	puts " Ketulla on krapula, niin myös madolla.\n Kaikki ne voit tavata Alkon jonossa!"
	[[elucka Kirahvi]::sanoo "öri öri öri" "Kahvi - likööri"]::print
	puts "\n Siili käyttää aineita, niin myös etana.\n Heitä et voi tavata Alkon jonossa!"
	[[[[elucka Kiiski]::sanoo "... ... ..." Whisky]::print]::sanoo " ... ..., ... ..."]::print
	[[[[elucka Siittiö]::sanoo ptlqm "I love you"]::print]::sanoo " ptlqm ptlqm, ptlqm ptlqm, ptl ptl, qm, ptlqm ptlqm..."]::print
	return ""
}

