LINUX.ORG.RU

История изменений

Исправление 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

с тебя решение на лиспе пожалуйста.