История изменений
Исправление qnikst, (текущая версия) :
ну напиши на свойм любимом языке со статической типизацией, как работать со списками элементов произвольных типов.
извини, я тебя непонимаю... полную задачу давай, я не собираюсь гадать, что тебе нужно.
+ : (Number * -> Number) ...
а). ты можешь передать список, нельзя? почему?
б).
> {-# LANGUAGE TypeFamilies #-}
>
> class Add r where
> add' :: (Integer -> Integer) -> r
>
> instance Add Integer where
> add' k = k 0
>
> instance (n ~ Integer, Add r) => Add (n -> r) where
> add' k m = add' (\n -> k (m+n))
>
> add :: (Add r) => r
> add = add' id
>
*Main> :e
Ok, modules loaded: Main.
*Main> add 1 2 3 :: Integer
6
с тебя решение на лиспе пожалуйста.
в). можно и проще если честно, но мне лень
Исходная версия qnikst, :
ну напиши на свойм любимом языке со статической типизацией, как работать со списками элементов произвольных типов.
извини, я тебя непонимаю... полную задачу давай, я не собираюсь гадать, что тебе нужно.
+ : (Number * -> Number) ...
а). ты можешь передать список, нельзя? почему?
б).
> {-# LANGUAGE TypeFamilies #-}
>
> class Add r where
> add' :: (Integer -> Integer) -> r
>
> instance Add Integer where
> add' k = k 0
>
> instance (n ~ Integer, Add r) => Add (n -> r) where
> add' k m = add' (\n -> k (m+n))
>
> add :: (Add r) => r
> add = add' id
>
*Main> :e
Ok, modules loaded: Main.
*Main> add 1 2 3 :: Integer
6
с тебя решение на лиспе пожалуйста.