воскресенье, 22 мая 2011 г.

In Flames - Metaphor

You stole my pure intentions
You are the sickness in between let me in
I'll bury the pain you taught me to be sad as you
You almost made me taker it all let me in
I'll bury the pain the sickness that you are a plague
That made me starve
Do you think you can show me how I got this far?
You bend me and you shake me you beg then you break me let me in
I'll bury the pain you made me feel like a sinner
Now you fear you'll die alone let me in
I'll bury the pain I feel
It's taking over and everything falls dark
Break me open, the desperate cry

среда, 27 апреля 2011 г.

Генератор функций являющихся автономными автоматами

Переоткрыл очередной велосипед.
Меня всегда раздражало то, что для задания автомата приходилось что-то примерно такого вида(mutable можно и на ref заменить, не суть важно):

 type Aut(state: 'S) =
  let mutable st = state
  
  member this.Next(x: 'A): 'B =
    ...
    st <- ...
    result

т.е. делать отдельный класс под каждый автомат или класс обёртку. Мне хотелось чего-нибудь более элегантного и удобного, а именно - представления автомата функцией. Вот, сегодня накидал следующее:

  let rec create (f: 'S -> 'I -> 'O) (g: 'S -> 'I -> 'S) (state: 'S) =
    let st = ref state
 
    fun (x: 'I) ->
      let r = f !st x
      st := g !st x
      r

т.е. передаём функции создателю 3 параметра: функцию выходов, функцию переходов и начальное состояние. Если передать 2 параметра, то, за счёт карирования получим не инициальный автомат, а если 3(или нач. стостояние в карированную ф-цию) - инициальный автомат.

Ну и пример работы:

let adder = 
  create 
    (fun s x -> 
      match s with
        | 0 -> x+1
        | 1 -> x
        | _ -> s+x
      ) 
    (fun s x -> (s+1) % 10) 0

 printfn "%A" [
    for i in 0..20 ->
      adder 1
  ]

результат:

[2; 1; 3; 4; 5; 6; 7; 8; 9; 10; 2; 1; 3; 4; 5; 6; 7; 8; 9; 10; 2]

воскресенье, 16 января 2011 г.

Забавно

Забавно чувствовать и понимать, что стал сильнее, умнее, выносливее... Понимать, что понимаешь больше... Чувствовать переполняющие тебя идеи, устремления, желания...

И это то после всех этих лет... Я уже и не надеялся снова вернуться к жизни, да ещё и настолько вырасти... Это неожиданно. Но Это приятно. Надеюсь я не упущу Это.

Со временем проверю.