RSS

Tag Archives: lisp

How to detect Friday the 13th with full moon using Emacs


nrAlmost 21 years ago, in 1994, I bought the brand new edition of Numerical Recipes in C: The Art of Scientific Computing. As an engineering and mathematics student who was much into programming, I still remember my excitement then, as well as the bright red hard-cover.

The first algorithm presented in the book (and its implementation in C programming language) was about calculating the dates that were Friday the 13th and had full moon. Now that I’m approaching the 21st anniversary of that day, I wanted to share a similar program to detect if the current date is Friday the 13th with full moon. This time, my preference is for Emacs Lisp, and instead of re-implementing the same algorithm, I simply use the calculations already provided by Emacs. In other words, I rely on the lunar-phase-list function that returns the lunar phases of the upcoming dates given a month and a year.

It’s been ages since I’ve done Common Lisp programming and many years since I’ve practiced Emacs Lisp, so the code below is probably not optimal and idiomatic, but nevertheless it follows:

You can used the function defined above to see whether it is your “unlucky” day:

This will return “Good luck!” most of the time, luckily! 🙂

Can you come up with other ways of detecting Friday the 13th with full moon using existing utilities, such as GNU calendar program? Or, how would you calculate the next 10 Friday the 13ths that had full moon, using Emacs Lisp or some existing utility?

 

Advertisements
 
Leave a comment

Posted by on November 12, 2015 in Emacs, Lisp, Programlama

 

Tags: , ,

Lean Text Editing with Emacs: Kanban Applied to the Process of Text Editing


The reader of this blog entry’s title might be ready for a long article, but sometimes the best things in life are very short and simple. Such as this subtle question and discovery of an Emacs user: Why don’t we eliminate waste of time by simply automating the white-space insertion after comma and most of the other punctuation characters?

Why, indeed? I’ve never thought of it before, yet, without giving it a single thought I’ve tortured my SPACE key millions of times. The solution? Simpy apply the following recipe to your beloved Emacs text editor, thereby adapting it to the Agile, Lean, and Kanban world of text editing by eliminating waste:

Read the rest of this entry »

 
2 Comments

Posted by on April 7, 2013 in Emacs, Programlama

 

Tags: , , , , , , ,

What happens when you try 1 / 3 in different SPARQL processors? Meet the semantics of mathematics of the Semantic Web


Recently, Dr. Frithjof Dau from SAP Research has posed an interesting SPARQL question in the context of the CUBIST project that led to more questions and interesting discoveries as well as mathematical annoyances. For all those semantic web enthusiasts and SPARQL nerds out there, can you guess the results of the following SPARQL query, along with the associated types, but of course without actually running the query using a SPARQL engine?

Read the rest of this entry »

 
Leave a comment

Posted by on July 20, 2012 in Lisp, Math, Programlama

 

Tags: , , , , ,

How to subtract a number from the current word and replace the result (in Emacs Lisp)


I needed to do some Emacs Lisp hacking for a little project (there are more conventional methods but they don’t have the sheer pleasure of hacking Lisp ;-)). Basically I wanted to come up with a function that takes the current word, converts it into an integer, subtracts some number from it, converts the resulting number into a string again and then replaces the original “word” with the new value:

 
Leave a comment

Posted by on December 20, 2011 in Emacs, Lisp, Programlama

 

Tags: , ,

Pascal Costanza’nın Çok Dik Başlı Lisp Rehberi


http://p-cos.net/lisp/guide.html
(v1.41, 9/8/2005, changelog.txt, eski sürüm
Korece çeviri: http://www.cesian.com/lisp.kr.html

Copyright © 2002, 2004, 2005 Pascal Costanza. Tüm hakları saklıdır. Bu çalışmayı değiştirmeden ve bütünüyle kopyalama, yayınlama ve saklama izni verilmiştir.

Bu belgeyi online başvuru kaynağı olarak ya da yazdırarak kullanabilirsiniz. Tüm bağlantılar açık URL şeklinde belirtilmiştir, yazdırıldıklarında da korunurlar. Lütfen her türlü geribildiriminizi pc@p-cos.net adresine yollayın.

Bölüm I: Ön bilgi

Hep bir oduncu olmak istemişimdir!
– Monty Python

1. Niçin bu tanıtımı yazıyorum?


Bu bölümü aslında Ağustos 2002’de yazmıştım. Aşağıda tasvir ettiğim durum artık geçerli değil ama bu rehberin ruhunu korumak için zaman kipini değiştirmemeye karar verdim.


Şu anki durumum şöyle. Son yedi yıldır, çoğunlukla Java programlama diline uzantılar geliştirilen projelerde, Java programlama diliyle çalışıyorum. Bundan önce, daha çok Wirth ailesinden diller (çoğunlukla Modula-2 ve Oberon) kullanıyordum, yani başta Java’nın sonraki dillere göre sahip olduğu bazı avantajlardan bir hayli memnundum.

Geçen sene içerisinde, Java’nın hala çok (aslında aşırı) sınırlı bir programlama dili olduğunun farkına vardım ve alternatifler aramaya başladım. Feyerabend projesiyle olan alakam nedeniyle ( http://www.dreamsongs.com/Feyerabend/Feyerabend.html), Lisp, doğal olarak alternatifler arasında göründü. (Richard Gabriel, Feyerabend projesini başlatmıştı ve aynı zamanda 1980’lerin başında Common Lisp standartlaştırmasını başlatan insanlardan biriydi.)

Bir sürü güzel programlama dili bulunmasına rağmen (mesela, alfabetik sırada: gbeta, Objective CAML, Python, Ruby), hemen Lisp’in, bir bakıma tüm dillerin anası olduğu izlenimini edindim. Bu düşüncemin temel nedeni, Lisp’in kod ve veriye birörnek davranan tam bir hesaplama teorisi içermesi. (Bu “sadece” Turing-tam * olmaktan daha güçlüdür. Daha fazla bilgi için, aşağıdaki “Lisp’in Teknik Geçmişi” bölümüne bakın.) Bunun uygulamadaki anlamı; Lisp’te hiçbir (kavramsal) kısıtlama filan yoktur: eğer bir şeyi herhangi bir dilde yapabiliyorsanız, Lisp’te de yapabilirsiniz. Dahası Lisp, tüm türleri çalıştırma anında denetler, böylece hiçbir statik tür sistemi yolunuza çıkamaz. Read the rest of this entry »

 
Leave a comment

Posted by on December 10, 2005 in Lisp, Programlama

 

Tags: ,

Sıradışılıkla Kazanmak (*)


(Nisan 2001, rev. Nisan 2003)

(Bu makale, 2001 Franz Geliştirici Sempozyumu’ndaki bir sunumdan derlenmiştir. Hala Yahoo! Store olarak kullanımda olan ve şu sıralar 20,000 mağaza ile en popüler elektronik ticaret yazılımı olan Viaweb Store’u, Lisp kullanarak nasıl yazdığımızı anlamaktadır.) [1]

1995 yazında, arkadaşım Robert Morris ile Viaweb isimli bir şirket kurduk. Amacımız, son kullanıcının Internet üzerinden elektronik mağazalar kurmasını sağlayacak bir yazılım geliştirmekti. Bu yazılımı diğerlerinden farklı kılan ise arayüz olarak web sayfalarını kullanarak kendi web sunucularımızda çalışmasıydı.

Bunu ilk düşünen biz değildik belki de ama ilk hayata geçiren biz olduk. Bildiğim kadarıyla Viaweb, web tabanlı ilk uygulamaydı. Bu fikir bize o kadar değişik gelmişti ki şirketin adını Viaweb koymaya karar verdik çünkü yazılımımız “web yoluyla” (via web, ÇN:Latince “via”: yolu ile, aracılığıyla) çalışıyordu.

Bu uygulama hakkında alışılmamış olan diğer bir şey ise o zamana kadar üniversiteler ve araştırma laboratuarları dışında pek kullanılmayan Lisp isimli bir programlama diliyle yazılmış olmasıydı. Viaweb, Lisp ile yazılmış, son kullanıcıya yönelik ilk büyük çaplı uygulamalardan biriydi. Rakiplerimizin kullandıkları programlama dillerinden çok daha etkili olduğu için Lisp bize büyük avantajlar getirdi.
Read the rest of this entry »

 
Leave a comment

Posted by on January 1, 2004 in Lisp, Programlama

 

Tags: , , ,