Serguey Zefirov (thesz) wrote,
Serguey Zefirov
thesz

Моя первая программа на Эпиграмме!

------------------------------------------------------------------------------
     (   X : *    !                            ( x : X ;  xs : List X !
data !------------!  where (--------------! ;  !----------------------!
     ! List X : * )        ! nil : List X )    !  cons x xs : List X  )
------------------------------------------------------------------------------
     ( X : * ;  Y : * ;  f : all x : X => Y ;  xs : List X !
let  !-----------------------------------------------------!
     !                  map f xs : List Y                  )
                                                            
     map f xs <= case xs                                    
     { map f nil => nil                                     
       map f (cons x xs) => cons (f x) (map f xs)           
     }                                                      
------------------------------------------------------------------------------


Впечатления интересные.

Вот этот map я писал час с перерывами. Его, кстати, я в примерах не обнаружил.

Сообщений об ошибках никаких, что очень необычно и достаточно неприятно.

Однако, когда сделал что-то правильно, оно хоп! и тоже что-то правильно делает. Это позволяет двигаться методом научного тыка и показывает некоторую логику во всем этом безумстве.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 25 comments