Fortran lives
Jun. 2nd, 2014 01:14 pmФортран знаменит, по крайней мере для меня, тем, что там можно было изменить (в том числе случайно) значение числа 5 (или другой константы). Причем это не текстовая замена а-ля #define в Си, а изменение в рантайме, затрагивающее и независимый код. Сегодня я узнал, что эта замечательная возможность сохранилась в Джаве и Питоне.
no subject
Date: 2014-06-02 06:33 am (UTC)no subject
Date: 2014-06-02 06:57 am (UTC)no subject
Date: 2014-06-02 07:35 am (UTC)λ> let 2+2=5 in 2+2
5
no subject
Date: 2014-06-02 07:41 am (UTC)> 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 5no subject
Date: 2014-06-02 07:47 am (UTC)no subject
Date: 2014-06-02 07:57 am (UTC)no subject
Date: 2014-06-02 08:23 am (UTC)no subject
Date: 2014-06-02 08:28 am (UTC)это чит!
no subject
Date: 2014-06-02 08:55 am (UTC)no subject
Date: 2014-06-02 09:01 am (UTC)class Fixnum alias_method :boring_plus, :+ def +(o) d = self == 2 and o == 2 ? 1 : 0 self.boring_plus(o).boring_plus(d) end end puts 2 + 2no subject
Date: 2014-06-02 09:02 am (UTC)no subject
Date: 2014-06-02 10:11 am (UTC)_+_ : N -> N -> N
z + n = succ n
(succ m) + n = succ(m + n)
no subject
Date: 2014-06-02 10:27 am (UTC)no subject
Date: 2014-06-02 10:29 am (UTC)no subject
Date: 2014-06-02 05:10 pm (UTC)no subject
Date: 2014-06-05 07:10 pm (UTC)пфффф
no subject
Date: 2014-06-11 07:32 am (UTC)X = 5 % тут очень много кода try % тут ещё до фига кода X = 2 + 2 % мегавычисление catch _:_ -> ok % да хрена ли там падать end, io:format("2 + 2 = ~p~n", [X]).