Mar. 9th, 2012

akuklev: (Default)
Меня тут на днях спросили, а зачем в языках программирования (и в особенности в Скале) нужны макросы. Ну так ежу же понятно, для декларативного программирования. Декларативное программирование, это когда вместо того чтобы описывать компьютеру средства достижения цели, описывают цели, а о средствах он догадывается сам.

Давайте я сейчас быстро напишу пример, а дальше всё само понятно:
val (a: Double, b: Double) = solve {

    a + b == 3

    a - b == 1

}

// Now a = 2, b = 1.


Ещё пример из http://infoscience.epfl.ch/record/161283/files/KuncakETAL10Comfusy.pdf, в переводе на наш синтаксис:
val (hours: Int, minutes: Int, seconds: Int) = solve {

  0 <= seconds; seconds < 60

  0 <= minutes; minutes < 60

  hours * 3600 + minutes * 60 + seconds == totalSeconds

}

Это их [livejournal.com profile] xeno_by (главный специалист по Скальным макросам) в комментах к этому посту показал.

Read more... )

December 2016

S M T W T F S
    123
456789 10
11121314151617
18192021222324
25262728293031

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 17th, 2025 05:31 pm
Powered by Dreamwidth Studios