Skip to content

Instantly share code, notes, and snippets.

from functools import partial
def reduce(reducing_function, fs, initial_value=None):
fs = iter(fs)
v = fs.next() if initial_value is None else initial_value
for f in fs:
v = reducing_function(v, f)
return v
square = lambda x: x**2
def s(n):
def comp2(f,g):
return lambda x: f(g(x))
def comp(*fs):
return reduce(comp2, fs)
def reduce(reducing_function, fs, initial_value=None):
fs = iter(fs)
v = fs.next() if initial_value is None else initial_value
for f in fs:
v = reducing_function(v, f)
return v
user=> (def lazy-fib (lazy-cat [0 1] (map + lazy-fib (rest lazy-fib))))
#'user/lazy-fib
user=> (count (take 200 lazy-fib))
ArithmeticException integer overflow clojure.lang.Numbers.throwIntOverflow (Numbers.java:1424)
user=> (count (take 200 lazy-fib))
93
user=>
; Read a number from STDIN
; Read that many lines of input from STDIN. Print output to STDOUT
(defn shashank [s]
(- (count s) (count (partition-by identity s))))
(defn -main []
(println "give me a number of lines followed by that
many lines")
(loop [t (Integer/parseInt (read-line))]
Незаконченная басня о воробьях.
Стояла пора гнездованья, но после долгих дней, полных тяжелой работы, воробьи сидели в вечерних лучах, расслабляясь и чирикая о том о сём.
„Мы такие маленькие и слабые. Представить себе только, как легка была бы наша жизнь, если бы у нас была сова, которая помогала бы нам вить наши гнёзда!“
„Верно!“, говорит другой, „Она бы могла нам ещё и помочь ухаживать за стариками и птенцами.“
„Она могла давать нам советы; могла бы приглядывать за соседской кошкой,“ добавил третий.
И тогда Пастус, старейшина, сказал: „давайте же пошлем разведчиков во все стороны света, пусть они поищут брошенного совёнка или совиное яйцо. Воронёнок тоже сойдет, или даже детёныш ласки. Это может стать лучшим событием в нашей истории после открытия Бесконечного Вместилища Зерна на заднем дворе“. Стая с энтузиазмом подхватила идею, воробьи повсюду зачирикали, что было мочи.

Порождение парадигм германских сильных глаголов

Обстановка:

Есть много (порядка сорока, считая значимые диалекты и мертвые языки) германских языков. В них во всех есть похожим образом устроенная глагольная система. Глаголы делятся на два больших надкласса: сильные и слабые. Сильные глаголы образуют формы прошедшего времени и причастия, меняя гласную в корне. Выбор конкретной гласной определяется "абляутным рядом": набором из четырех гласных (или дифтонгов, или нулей), разных абляутных радов много, и конкретный их набор разнится от языка к языку.

Для построения всех форм глагола нужно знать:

  1. язык (и набор абляутных рядов этого языка)
  2. заглавную форму глагола
//http://algowiki.net
import javax.vecmath.Point3d;
public class Dijkstra {
final int MAX;
final int EDGES;
final double INFINITE = 998.0;
//http://algowiki.net
import javax.vecmath.Point3d;
public class Dijkstra {
final int MAX;
final int EDGES;
final double INFINITE = 998.0;
################################################################################
# Programs must be written for people to read, and only incidentally for machines to execute.
# -- Abelson & Sussman, SICP
# http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html
#
# Особенно это важно для кода, который хочется обсудить, понять и поправить — т.е. практически для любого.
# Так что я буду оставлять комментарии по мере чтения, так читать проще.
# Комментарии будут _под_ соответствующими строками кода.
def function(s):
st='#'
################################################################################
# Programs must be written for people to read, and only incidentally for machines to execute.
# -- Abelson & Sussman, SICP
# http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html
#
# Особенно это важно для кода, который хочется обсудить, понять и поправить — т.е. практически для любого.
# Так что я буду оставлять комментарии по мере чтения, так читать проще.
# Комментарии будут _под_ соответствующими строками кода.
def function(s):
st='#'