Дистанционная подготовка: haskell
haskell
от Андрей Глейх - Пятница 18 Апрель 2014, 12:05
2949. Обмен значений
  Я правильно понимаю, что данная задача на haskell нерешаема в том виде, в котором она определена? Хотя бы потому, что в данном языке переменных нет?
Re: haskell
от Peter Cherepanov - Понедельник 21 Апрель 2014, 11:54
  Почему нельзя? Фортрановскую программу можно писать на любом языке.

main = do
    a <- getLine
    b <- getLine
    let c = a
    let a = b
    let b = c
    putStrLn (a ++ " " ++ b)
Re: haskell
от Андрей Глейх - Пятница 2 Май 2014, 10:55
  А если внимательно подумать, то приведенное решение только имитирует, решение задачи. В HASKELL вроде как нет изменяемых типов. На самом деле там всегда создаются новые элементы при необходимости. И по сути мы делаем в данном решении именно то, о чем в условии сказано - так делать нельзя
Re: haskell
от Andrei Fedun - Четверг 18 Декабрь 2014, 11:38
  эта задача не подходит для haskell, не потому что в нем нет переменных, они как раз есть let x и т.д.).

переменные в haskell - не изменяемые, вот в чем дело.

условие этого задания предполагает работу с двумя входными переменными, иначе если использовать временную переменную то решение тривиальное.
наверно разработчикам задания интересно другое решение.
оно тоже в общем не сложное.