Uzun zamandır Scheme diline bakmıyordum, bugün birisinden gelen bir rica üstüne çok kısa bir fonksiyonu kodlayayım dedim, Common Lisp ortamı kadar entegre bir ortama sahip olmadığımı fark ettim ama yine de Dr. Scheme yüklemeye direniyor ve Emacs ile devam diyorum ;-)

Scheme egzersizi kısaca şuydu: Öyle bir fonksiyon yaz ki, verili sayı listesi içinden 2den küçük veya 7den büyük sayıları seçip toplamı döndürsün, bu koşula uyan bir şey yoksa da boş liste döndürsün.

İlk aklıma gelen şöyle bir şey oldu:

(define (add-strict my-list)
  (apply +
      (map (lambda (x)
    	 (cond ((or  (< x 2)  (> x 7))
		x)
    	       (#t
    		 0))) my-list)))

1 ]=> (add-strict '(3 3 4))

;Value: 0

1 ]=> (add-strict '(1 2 3 3 4 9))

;Value: 10

Sonra, söz konusu spesifikasyonu tam sağlamadığımı, gerektiği zaman boş liste değil de 0 döndürdüğümü fark ettim. Bu sefer daha primitif Scheme araçları ile alternatif bir şey yazdım:

(define (add-strict2 my-list)
  (cond ((eq? my-list '()) '())
	((or (< (car my-list) 2)
	     (> (car my-list) 7))
	   (+ (car my-list) (add-strict (cdr my-list))))
	(#t
	  (add-strict2 (cdr my-list)))))

1 ]=> (add-strict2 '(3 3 4 5))

;Value: ()

1 ]=> (add-strict2 '(1 2 3 3 4 9))

;Value: 10

Sorudaki şartları yerine getirdiğini düşünüp Scheme ile çalışmayı bıraktım.

Xach gene garip bir şeyler yapıyor Common Lisp ile dinamik görüntü düzenleme bağlamında (bkz. Operasyona Lisp Bilen Biri Gerekli ;-) )

SysAdmin bana nostalji yaşattı, Scheme ve sistem yönetimi ile ilgili bir makale: Systems Administration with Scsh.

Tonguç Yumruk arkadaşımız damardan UnCommon Web ortamlarına girişmiş, neler çıkacağını merakla ve heyecanla bekliyoruz…

Benzer Yazılar / Similar Posts:

This entry was posted on Saturday, October 29th, 2005 at 11:22 pm and is filed under Debian, Emacs, General, Lisp, Programlama. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

One Trackback/Ping

  1. FZ Blogs » Emacs, Scheme, sıradışı iletişim kurma yöntemleri…    Oct 30 2005 / 2pm:

    [...] Son karşılaştığım iletişim kurma şekli IRC’de, FreeNode üzerinden. Kenarda sessiz sakin duran X-Chat‘e bakınca fark ettim ki Rickdangerous bana özelden bir mesaj yollamış ve gezegende gördüğü Scheme kodlarına istinaden, daha bi Scheme tarzı, daha bi kuyruk özyinelemeli olduğunu söylediği kod yollamış: [...]

Leave a reply

Name (*)
Mail (will not be published) (*)
URI
Comment