thedeemon: (office)
[personal profile] thedeemon
Фортран знаменит, по крайней мере для меня, тем, что там можно было изменить (в том числе случайно) значение числа 5 (или другой константы). Причем это не текстовая замена а-ля #define в Си, а изменение в рантайме, затрагивающее и независимый код. Сегодня я узнал, что эта замечательная возможность сохранилась в Джаве и Питоне.

Date: 2014-06-02 07:41 am (UTC)
From: [identity profile] deni-ok.livejournal.com
Можно иначе, используя полиморфность плюса и числовых литералов:
> newtype Oh = Oh Integer deriving Eq
> instance Show Oh where show (Oh n) = show n
> instance Num Oh where {2 + 2 = 5; fromInteger n = Oh n}
> default (Oh)
> 2 + 2
5

Date: 2014-06-02 07:47 am (UTC)
From: [identity profile] kurilka.livejournal.com
Это слишком многословно - навевает скуку :)

Date: 2014-06-02 07:57 am (UTC)
From: [identity profile] deni-ok.livejournal.com
Зато не мешает обычным плюсом пользоваться :)
> (2::Int) + (2::Int)
4

Date: 2014-06-02 08:28 am (UTC)
From: [identity profile] nealar.livejournal.com
> default (Oh)

это чит!

Date: 2014-06-02 08:55 am (UTC)
From: [identity profile] deni-ok.livejournal.com
Не чит, а законный инструмент разрешения неоднозначностей при вычислении полиморфных выражений.

Profile

thedeemon: (Default)
Dmitry Popov

February 2026

S M T W T F S
12 34567
891011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 9th, 2026 08:37 pm
Powered by Dreamwidth Studios