Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.06.2010, 21:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 21  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А вот собственно, решение на божественном языке

Код:
#!/usr/bin/sbcl --script
(defun fizz-buzz (i threes fives)
	(let (result)
		(when (< i 100)
			(setq result "")
			(when (= i threes)
				(setq result "Fizz")
				(setq threes (+ threes 3))
			)
			(when (= i fives)
				(setq result (concatenate 'string result "Buzz"))
				(setq fives (+ fives 5))
			)
			(when (equal result "")
				(setq result i)
			)
			(print result)
			(fizz-buzz (1+ i) threes fives)
		)
	)
)

(fizz-buzz 1 3 5)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 30.06.2010 в 07:27.
Старый 28.06.2010, 22:02
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 22  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Scheme или Common Lisp ))?
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 28.06.2010, 22:35
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 23  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
CLisp
__________________
Hell is the possibility of sanity

Старый 29.06.2010, 01:10
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 24  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Код AS3:
val s = (1 to 100).foldLeft(""){(xs, x) => xs + (x match{
    case a if x % 5 == 0 && x % 3 == 0 => "FizzBuzz"
    case b if x % 5 == 0 => "Buzz"
    case c if x % 3 == 0 => "Fizz"
    case _ => x.toString
  })
}
+++
это ничего не выводит. хм.
тогда так
Код AS3:
(1 to 100) foreach {x => println(x match{
    case a if a % 5 == 0 && a % 3 == 0 => "FizzBuzz"
    case b if b % 5 == 0 => "Buzz"
    case c if c % 3 == 0 => "Fizz"
    case _ => x.toString
  })
}
__________________
:emocry:


Последний раз редактировалось lowka; 29.06.2010 в 01:21.
Старый 29.06.2010, 05:04
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 25  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Scala?
__________________
Hell is the possibility of sanity

Старый 29.06.2010, 18:42
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 26  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Ага ))
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 30.06.2010, 01:11
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 27  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Раз уж пошли "божественные" языки..))
Код AS3:
-module(test).
-export([fizzBuzz/0]).
 
fizzBuzz() ->
fizzBuzz(1).
 
fizzBuzz(101)->ok.
 
fizzBuzz(A)->
if
	A rem 3 == 0 && A rem 5 == 0 ->
		io:format("FizzBuzz~n", []);
	A rem 3 == 0 ->
		io:format("Fizz~n", []);
	A rem 5 == 0 ->
		io:format("Buzz~n", []);
	true ->
		io:format("~w~n", [A])
end,
fizzBuzz(A+1).
 
 
>test:fizzBuzz().
PS:Работоспособность не проверял - могут быть косяки).
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 30.06.2010 в 13:27.
Старый 30.06.2010, 02:11
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 28  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Prolog
Код AS3:
shout( fizz, 3 ).
shout( buzz, 5 ).
 
fizz_buzz( Total, Total )	:- true.
fizz_buzz( Current, Total )	:- 
	shout( X, Current ),
	shout( Y, Current ),
	Current is Current + 1,
	fizz_buzz( Current, Total),
	X, Y.
Правда он не выводит данные как надо, я в Прологе со строками еще толком не работал ^_^, надо будет дописать как надо.

Добавлено через 23 минуты
Кстати, старый добрый ActionScript, тоже может тянутся на Олимп:

Код AS3:
var fizzBuzz:Function = function( count:int = 0 ):void
			{
				var result:String = '';
				if( !( count % 3 ) )
					result += "Fizz";
				if( !( count % 5 ) )
					result += "Buzz";
 
				trace( count, result );
 
				tail( count );
			}
 
			var tail:Function = function( count:int ):void
			{
				if( ++count <= 100 )
					fizzBuzz( count );
			}
 
			fizzBuzz();
Надо выспавшись подумать, как старину Curry сюда приделать, а то Tail-Recurssion не слишком уж божественно ^_^
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 30.06.2010 в 02:43.
Старый 30.06.2010, 13:41
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 29  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
практически аналог эрланговского кода на AS3 :
Код AS3:
function fizzBuzz(a:int=1,b:int=100):void
{
		if (a > b) return;
 
		if (a % 3 == 0 && a % 5 == 0) 
			trace ("FizzBuzz");
		else if (a % 3 == 0) 
			trace ("Fizz");
		else if (a % 5 == 0) 
			trace ("Buzz");
		else 
			trace(a);
		fizzBuzz(a + 1,b);	
}
 
 
fizzBuzz();
только в отличии от эрланга может произойти переполнение стека рекурсий уже на
fizzBuzz(1,256);

UPD: странно..никакого переполнения не наблюдаю)))))

UPD2: таки наблюдаю на fizzBuzz(1,5552);
Цитата:
Error: Error #1023: Stack overflow occurred.
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 30.06.2010 в 13:49.
Старый 30.06.2010, 16:29
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 30  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Ну кстати, tail рекурсией, можно сделать вызов setTimeout ^_^ и обойти переполнение стэка
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.