Ваши чисто функциональные ночные кошмары программирования сбываются!
Единственный эзотерический тьюрингово-полный язык программирования , который имеет:
Вот факториальный код во всей его круглой славе:
K(SII(S(K(S(S(KS)(S(K(S(KS)))(S(K(S(KK)))(S(K(S(K(S(K(S(K(S(SI(K(S(K(S(S(KS)K)I))
(S(S(KS)K)(SII(S(S(KS)K)I))))))))K))))))(S(K(S(K(S(SI(K(S(K(S(SI(K(S(K(S(S(KS)K)I))
(S(S(KS)K)(SII(S(S(KS)K)I))(S(S(KS)K))(S(SII)I(S(S(KS)K)I))))))))K)))))))
(S(S(KS)K)(K(S(S(KS)K)))))))))(K(S(K(S(S(KS)K)))K))))(SII))II)
Особенности:
Если вы хотите попытаться понять его, вот исходный код Схемы для запустить через компилятор Lazier:
(lazy-def '(fac input)
'((Y (lambda (f n a) ((lambda (b) ((cons 10) ((b (cons 42)) (f (1+ n) b))))
(* a n)))) 1 1))
(для подходящих определений Y, минусы, 1, 10, 42, 1+ и *).
РЕДАКТИРОВАТЬ:
( 10 КБ тарабарщины или я бы вставил его). Например, в приглашении Unix:
$ echo "4" | ./lazy facdec.lazy 24 $ echo "5" | ./lazy facdec.lazy 120
Довольно медленно для чисел выше, скажем, 5.
Код вроде раздутый, потому что мы должны включить библиотечный код для всех наших собственных примитивов (код, написанный в Hazy , интерпретатор лямбда-исчисления и LC-to-Lazy) K компилятор написан на Хаскеле).
используйте этот код ...
dt = city.GetAllCity();//your datatable
string attachment = "attachment; filename=city.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in dt.Columns)
{
Response.Write(tab + dc.ColumnName);
tab = "\t";
}
Response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
{
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
{
Response.Write(tab + dr[i].ToString());
tab = "\t";
}
Response.Write("\n");
}
Response.End();