Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Почему програмисты не умеют програмировать? (http://www.flasher.ru/forum/showthread.php?t=141504)

Котяра 30.06.2010 17:37

Цитата:

Сообщение от Nirth (Сообщение 918978)
Ну кстати, tail рекурсией, можно сделать вызов setTimeout ^_^ и обойти переполнение стэка

Ага. баловался уже так)

wvxvw 01.07.2010 17:01

Ну и еще немножко эзотерики :)
Код:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>

<xsl:template match="/">
<html lang="en" >
        <head><title>FizzBuzz XSLT Example</title></head>
        <body>
                <h1>FizzBuzz!</h1>
                <ul>
                <xsl:call-template name="iterate">
                        <xsl:with-param name="start">1</xsl:with-param>
                        <xsl:with-param name="count">100</xsl:with-param>
                </xsl:call-template>
                </ul>
        </body>
</html>
</xsl:template>

<xsl:template name="iterate">
        <xsl:param name="start"/>
        <xsl:param name="count"/>
        <xsl:if test="$start &lt;= $count">
              <li><xsl:call-template name="check">
                      <xsl:with-param name="start">
                        <xsl:value-of select="$start"/>
                </xsl:with-param>
              </xsl:call-template></li>
        </xsl:if>
        <xsl:if test="$start &lt;= $count">
                <xsl:call-template name="iterate">
                        <xsl:with-param name="start">
                                <xsl:value-of select="$start + 1"/>
                        </xsl:with-param>
                        <xsl:with-param name="count">
                                <xsl:value-of select="$count"/>
                        </xsl:with-param>
                </xsl:call-template>
        </xsl:if>
</xsl:template>

<xsl:template name="check">
        <xsl:param name="start"/>
        <xsl:variable name="value" >
                <xsl:if test="number($start) mod 3 = 0">Fizz</xsl:if>
                <xsl:if test="number($start) mod 5 = 0">Buzz</xsl:if>
        </xsl:variable>
        <xsl:choose>
                <xsl:when test="string-length($value) = 0">
                        <xsl:value-of select="$start"/>
                </xsl:when>
                <xsl:otherwise>
                        <xsl:value-of select="$value"/>
                </xsl:otherwise>
        </xsl:choose>
</xsl:template>

</xsl:stylesheet>


silin 01.07.2010 19:32

о, е
где-то читал/слышал, что полиглолты мыслят гораздо свободнее/складнее, чем моноглоты (сори - нет наверное такого термина, но это такой перец, который дальше того, что сам знает не думает..)
wvxvw для нас в этом смысле просто удача
удача в том смысле, что он есть и свои мысли сюда трансрутует

Nirth 01.07.2010 21:00

ну справедливости ради я скажу, что Lisp и Prolog используются в индустрии. На лиспе часто прототипируют ИИ. Пролог используется активно в биологии.
Доля Эрланга растет. Это я к тому, что если уж говорить об изотерике – нужно вспомнить про Whitespace !

Psycho Tiger 01.07.2010 21:46

Цитата:

Сообщение от Nirth (Сообщение 919310)
ну справедливости ради я скажу, что Lisp и Prolog используются в индустрии. На лиспе часто прототипируют ИИ. Пролог используется активно в биологии.
Доля Эрланга растет. Это я к тому, что если уж говорить об изотерике – нужно вспомнить про Whitespace !

А ведь у тебя тоже всё начиналось с Hello World...

wvxvw 01.07.2010 22:41

Ну, на Whitespace я не смогу :) Да и запостить его на форум тяжко будет :) А вообще, ну так же по жизни приходится, можно подумать, что никому не приходилось BAT файлы писать, а это вообще по идеологии очень далеко от AS3. Ну и в том числе со всякими серверными языками разбираться, тот же SQL, который тоже вобщем-то почти ни на что не похож.

Сайлас 01.07.2010 23:05

Ну первое что приходит в голову на SQL
Код:

CREATE DEFINER=`root`@`localhost` PROCEDURE `loopFizzBuzz`()
BEGIN

 DECLARE i INTEGER;
 DECLARE s TEXT;
 DECLARE ls TEXT;
 DECLARE comma VARCHAR(1);
 SET comma = '';
 SET i = 1;
 SET s = '';
 WHILE i < 101 DO
  SET ls = '';
  IF (i % 3) = 0 THEN
  SET ls = 'Fizz';
  END IF;
  IF (i % 5) = 0 THEN
  SET ls = CONCAT(ls,'Buzz');
  ELSEIF ls = '' THEN
  SET ls = i;
  END IF;
  SET s = CONCAT(s,comma,ls);
  IF comma = '' THEN
  SET comma = ',';
  END IF;
  SET i = i + 1;
 END WHILE;
 SELECT s;
END

PS - это на скорую руку, так можно некоторые вещи по-разному сделать. Здесь все выводится в одну строку, а не каждое значение в row

Котяра 01.07.2010 23:56

Цитата:

где-то читал/слышал, что полиглолты мыслят гораздо свободнее/складнее, чем моноглоты
Многия знания - многия печали )))
А вообще расширенный кругозор - это расширенный кругозор)
Ничуть не жалею о выученном в детстве фортран (учил без компа по случайно найденному отцовскому учебнику)
также Basic а -ля спектрум, и всяким страшным из института: форт, asm, pascal, c++ итп.. - реально на них не приходилось кодить (кроме плюсов) а фан хороший)

хороший сайтик есть:
http://progopedia.ru
там на каждом языке - хелловорд, алгоритм вычисления фибоначчи и факториала - очень интересно посмотреть.
Кстати там ни слова о Нашем - зарегился даже чтоб статью там написать - руки не доходят.. может у кого дойдут?

PS: я вот как-то застрял последние лет пять на ас.. надоел жутко - сейчас срочно осваиваю эрланг и c#.
java почему то не пошла - язык в принципе выучил и даже кое-что серьёзное на нём делал, но как -то душа не лежит.
попробовал плюсы вспомнить - забил, споткнувшись об сложность всяких дефайнов и кучу библиотек.
сами языки вообще выучить легко. самое сложное - это обвязки, исключения из правил, парадигмы итп, осознание которых приходит только с реальным опытом работы.
сорри за такой личностный оффтоп - просто накипело)))))))

Nirth 20.07.2010 13:09

Пытался попроывать собать на Ruby в одну строчку, но получился клон Erlang ( Котяры ), но не удалять же не засветив ^_^
Код:

#!/usr/bin/env ruby

1.upto( 100 ){
  |i|
  case
    when i % 3 == 0 && i % 5 == 0 : print "Fizz-Buzz", "\n"
    when i % 3 == 0 : print "Fizz", "\n"
    when i % 5 == 0 : print "Buzz", "\n"
    else print i.to_s, "\n"
  end
}



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

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