powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Скачал Common Lisp от Ufa Soft
25 сообщений из 186, страница 5 из 8
Скачал Common Lisp от Ufa Soft
    #35893545
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХПPC_2ПХПPC_2не на всех задачах
Это ты к чему? Задачи они действительно разные. Но в большинстве они стандартные и всегда можно упростить. Думаю, ты не космические корабли запускаешь, а "гавнокодишь", как и я на в автоматизацию бизнеса.

да, а еще я заметил что код который пишется на абстрактном SQL можно сдавать почти не тестируя и не дебажа. Писал бы на Си или Шарпе, после каждого чиха решето ошибок.
Скуль узко типизирован и находится внутри целого программного комплекса под название БД. И вот этот комплекс дает работать с собой по средствам какого-то языка (пох какого). Обычно тупого и понятного. Понятного заметь, а не хреноты из скобок.

Так Лисп как раз тебе позволяет поднятся и создать собственную абстракцию языка вроде того сиквела над твоей задачей.
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893568
Гы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХП
Собственно из сылок не очень ясно почему он супер, но я не вникал особо-то. Еслиб они были на русском, то было бы намного приятнее вникать в суть Дао по Лиспу. Посмотрел на их блоги и собственно не воткнул опять же. Вот пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
The Java tutorial code that started this is:

public class ScoresAverage {

   public static void main(String[] args)
   {
       double scores[] = {  76 . 0 ,  84 . 5 ,  92 . 5 ,  88 . 0 ,  96 . 0  };
       double sum=  0 ;
       double average;

       for (int i =  0 ; i < scores.length; i++)
       {
           sum += scores[i];
       }

        average = sum / scores.length;

        System.out.println("The average of the scores is " + average);
        System.out.println(scores[ 4 ] + " is the fourth element in the scores array.");
        System.out.println("There are " + scores.length + " elements in this array.");
    }
}

And the literal Common Lisp translation offered is:

(let* ((scores-array #( 76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 ))
       (total-score  0 ))
  ;; Mirror the Java code and iterate to calculate the total score.  Can call 'loop or 'dotimes.
  (loop for x from  0  below (array-total-size scores-array)
        do (setf total-score (+ total-score (svref scores-array x))))
  (format t "The average of the scores is ~F~%" (/ total-score (array-total-size scores-array)))
  (format t "~D is the ~:R element in the scores-array.~%" (svref scores-array  4 )  4 )
  (format t "There are ~D elements in the scores-array.~%" (array-total-size scores-array)))


I think that this is a reasonable literal translation, which meets Mike's stated goal nicely.
Неужели так приятен для восприятия второй код!?

Это вообще не показательный отрывок. Код скалькирован один-в-один. И читается одинаково.
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893581
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL_Lamer

2. Обрати внимание на вторую выводимую строку:
Джава: fourth element
Лисп: ~:R element



Да, ты ведь наверно не можешь посмотреть результат для Лисп :)
А результат такой:
96.0 is the fourth element in the scores-array.
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893601
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы
Это вообще не показательный отрывок. Код скалькирован один-в-один. И читается одинаково.

100%, думается там через рекурсию может быть намного проще в Лиспе
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893637
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если на константах то во так
Код: plaintext
1.
(/(+  76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 )  5 )

Кстате как узнать длину списка в лиспе ?
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893664
EMACS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893682
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PC_2если на константах то во так
Код: plaintext
1.
(/(+  76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 )  5 )

Кстате как узнать длину списка в лиспе ?

length, например
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893689
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) wrote:

> Нет, Солнце зашло (и уже довольно давно) :(
> На Солнце тролли каменеют

Так я вот и говорю, когда уже взойдёт обратно ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893708
EMACS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно было и так (взято оттуда же)
Код: plaintext
1.
2.
3.
4.
(let* ((scores-array #( 76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 )))
		   (format t "The average of the scores is ~F~%" (apply #'(lambda (&rest args) (/(apply #'+ args)(length args))) (coerce scores-array 'list)))
		   (format t "~D is the ~:R element in the scores-array.~%" (svref scores-array  4 )  4 )
		   (format t "There are ~D elements in the scores-array.~%" (array-total-size scores-array)))
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893769
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХП wrote:

> (let* ((scores-array #(*76*.*0* *84*.*5* *92*.*5* *88*.*0* *96*.*0*))
> (total-score *0*))
> ;; Mirror the Java code and iterate to calculate the total score. Can call 'loop or 'dotimes.
> (loop for x from *0* below (array-total-size scores-array)
> do (setf total-score (+ total-score (svref scores-array x))))
> (format t "The average of the scores is ~F~%" (/ total-score (array-total-size scores-array)))
> (format t "~D is the ~:R element in the scores-array.~%" (svref scores-array *4*) *4*)
> (format t "There are ~D elements in the scores-array.~%" (array-total-size scores-array)))

> Неужели так приятен для восприятия второй код!?

Да ужастно как неприятен. А вот такой код уже гораздо лучше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(let ((scores #( 76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 )))
   (format t "The average of the scores is ~F~%~D is the ~:R element in the 
scores-array.~%There are ~D elements in the scores-array.~%"
           (/ (reduce #'+ scores) (length scores))
           (aref scores  4 )
            4 
           (length scores)))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
COMMON-LISP-USER>
(let ((scores #(76.0 84.5 92.5 88.0 96.0)))
   (format t "The average of the scores is ~F~%~D is the ~:R element in the 
scores-array.~%There are ~D elements in the scores-array.~%"
           (/ (reduce #'+ scores) (length scores))
           (aref scores 4)
           4
           (length scores)))

The average of the scores is 87.4
96.0 is the fourth element in the scores-array.
There are 5 elements in the scores-array.
NIL
[/fuxed]
Posted via ActualForum NNTP Server 1.4
                    
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893783
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХП wrote:

> под название БД. И вот этот комплекс дает работать с собой по средствам
> какого-то языка (пох какого). Обычно тупого и понятного. Понятного
> заметь, а не хреноты из скобок.

Ну, это уже твои личные проблемы.

Кстати, что такое всё-таки "Common Lisp от Ufa Soft" ? Кто нибудь скажет ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893799
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PC_2 wrote:

> Кстате как узнать длину списка в лиспе ?
length
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893805
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PC_2студентик
как будто вы непоняли что я имел ввиду?! написать компилятор(программу преобразующую вашу абстрагированную "идеальную" программу в машинный РАБОЧИЙ код) будет очень как непросто, а чтобы еще эти самые лексемы порождали более менее оптимальный код... не забудте ваш компьютер пока еще не может думать абстракциями... это наверно самый главный для меня минус, в остальном конечно есть интересные моменты, но так для теории, а не для практики...

баянист, тебе уже писали. Все с точностью до наоборот.
Возьми тот же SQL, благодаря абстракции запроса телодвижений на порядки меньше и вместе с тем оптимизатору воли на порядок больше. Статистика, Оптимизатор, Кеш и так далее.

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

Все потому, что они настолько "умны", что даже могут разносить и переписывать мелкую рекурсию за тебя например в циклические алгоритмы. Будь код твой абстрактным, жизнь компилятору можно было облегчить в разы и ему не пришлось бы за тебя "переписывать" код.

понимаешь спорить с тобой, это всеравно что круги на воде делать, напиши свой "высокоабстрактный" компилятор Лиспа и тогда уже доказывай
во вторых возмем коды тех сорировок которые ты приводил как думаешь где проще компилятору отранслировать машинный код в С примере или в Хаскел... если ты думаешь что во втором то ты безнадежен, в С к примеру в коде команды сложения будут прямиком с небольшими изменениями оттранслированы в АТОМАРНУЮ машинную команду add процессора IA-32 , а втвоем примере с Хаскелом будет п****ц потому как транслировать его операнд "+" для меня это загадка...
пойми что везде мы платим определенную цену за удобство и абстракцию мы платим скоростью и оптимальностью так было есть и будет, закон диалектики переход количества в качество...
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893820
Фотография ПХП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
ПХП wrote:

> (let* ((scores-array #(*76*.*0* *84*.*5* *92*.*5* *88*.*0* *96*.*0*))
> (total-score *0*))
> ;; Mirror the Java code and iterate to calculate the total score. Can call 'loop or 'dotimes.
> (loop for x from *0* below (array-total-size scores-array)
> do (setf total-score (+ total-score (svref scores-array x))))
> (format t "The average of the scores is ~F~%" (/ total-score (array-total-size scores-array)))
> (format t "~D is the ~:R element in the scores-array.~%" (svref scores-array *4*) *4*)
> (format t "There are ~D elements in the scores-array.~%" (array-total-size scores-array)))

> Неужели так приятен для восприятия второй код!?

Да ужастно как неприятен. А вот такой код уже гораздо лучше:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
(let ((scores #( 76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 )))
   (format t "The average of the scores is ~F~%~D is the ~:R element in the 
scores-array.~%There are ~D elements in the scores-array.~%"
           (/ (reduce #'+ scores) (length scores))
           (aref scores  4 )
            4 
           (length scores)))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
COMMON-LISP-USER>
(let ((scores #(76.0 84.5 92.5 88.0 96.0)))
   (format t "The average of the scores is ~F~%~D is the ~:R element in the 
scores-array.~%There are ~D elements in the scores-array.~%"
           (/ (reduce #'+ scores) (length scores))
           (aref scores 4)
           4
           (length scores)))

The average of the scores is 87.4
96.0 is the fourth element in the scores-array.
There are 5 elements in the scores-array.
NIL
[/fuxed]


Cупер изящно!

Вот это на ПХП
Код: plaintext
1.
2.
3.
4.
5.
$mas = array( 76 . 0 ,  84 . 5 ,  92 . 5 ,  88 . 0 ,  96 . 0 );
echo 'тра-та-та1: ', array_sum($mas) / count($mas), ' тра-та-та2: ',  $mas[ 4 ], ' тра-та-та3: ', count($mas);

выхлоп:
тра-та-та1:  87 . 4  тра-та-та2:  96  тра-та-та3:  5 
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893826
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое написалось:

Код: plaintext
1.
2.
3.
4.
5.
(let* ((scores-array #( 76 . 0   84 . 5   92 . 5   88 . 0   96 . 0 ))
                (total-score (apply #'+ (coerce scores-array 'list))))
           (format t "The average of the scores is ~F~%" (/ total-score (array-total-size scores-array)))
           (format t "~D is the ~:R element in the scores-array.~%" (svref scores-array  4 )  4 )
           (format t "There are ~D elements in the scores-array.~%" (array-total-size scores-array)))
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893829
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХП
Неужели так приятен для восприятия второй код!?

Дело привычки
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893839
Фотография ПХП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)ПХП
Неужели так приятен для восприятия второй код!?

Дело привычки
Видимо). Сродни мазохизму чтоль.
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893851
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
студентик
понимаешь спорить с тобой, это всеравно что круги на воде делать, напиши свой "высокоабстрактный" компилятор Лиспа и тогда уже доказывай
во вторых возмем коды тех сорировок которые ты приводил как думаешь где проще компилятору отранслировать машинный код в С примере или в Хаскел... если ты думаешь что во втором то ты безнадежен, в С к примеру в коде команды сложения будут прямиком с небольшими изменениями оттранслированы в АТОМАРНУЮ машинную команду add процессора IA-32 , а втвоем примере с Хаскелом будет п****ц потому как транслировать его операнд "+" для меня это загадка...
пойми что везде мы платим определенную цену за удобство и абстракцию мы платим скоростью и оптимальностью так было есть и будет, закон диалектики переход количества в качество...

По вашей логике, для получения хорошего быстродействия надо все писать на ассемблере? Учтите только:
1. Человек не умеет по-настоящему хорошо писать на ассемблере
2. Написать компилятор для с++ на порядок сложнее чем для лиспа (sic!) Подумайте, почему?
3. Почему-то более абстрактные джава и сишарп в некоторых случаях обгоняют с++, не находите это странным?
4. Вроде бы уже есть компиляторы для Хаскелла, которые автоматически распараллеливают программы(тут я не буду очень настойчив, потому что слышал на уровне звона-деталей не знаю)
5. Процессоры уже где-то 2 десятка лет создают для компиляторов, а не для программистов, чем более низкоуровневый язык, тем меньше степеней свободы он оставляет для оптимизации компилятору. Т.е. любой более-менее быдлокод на низкоуровневом языке будет выполняться намного дольше чем на высокоуровневом. Чем больше программа, тем труднее ее оптимизировать вручную, поэтому с++ не годится для больших приложений-не разгребешься в килотоннах запутанного и взаимосвязанного кода. Да, для программы уровня 2+2 лучше всего ассемблер, но для сложных программ жизненно необходим высокоуровневый язык
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893852
Фотография SQL_Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПХПGluk (Kazan)ПХП
Неужели так приятен для восприятия второй код!?

Дело привычки
Видимо). Сродни мазохизму чтоль.

Ну да, мазохизм, да и только... твой ПХП
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893919
Ммихалыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PC_2не на всех задачах

со временем ко всему привыкаешь, кому-то нравится светлое, кому-то темное.
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893943
Ммихалыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den
Да, для программы уровня 2+2 лучше всего ассемблер, но для сложных программ жизненно необходим высокоуровневый язык


если при этом не будет страдать быстродействие в разы. (маленькое дополнение)
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893946
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммихалычzloy den
Да, для программы уровня 2+2 лучше всего ассемблер, но для сложных программ жизненно необходим высокоуровневый язык


если при этом не будет страдать быстродействие в разы. (маленькое дополнение)


При написании в низкоуровневых языках будет
1. Время разработки стремящее к бесконечности
2. Быстродействие хуже чем у высокоуровневых языков
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893953
студентик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy den
По вашей логике, для получения хорошего быстродействия надо все писать на ассемблере? Учтите только:
1. Человек не умеет по-настоящему хорошо писать на ассемблере
2. Написать компилятор для с++ на порядок сложнее чем для лиспа (sic!) Подумайте, почему?
3. Почему-то более абстрактные джава и сишарп в некоторых случаях обгоняют с++, не находите это странным?
4. Вроде бы уже есть компиляторы для Хаскелла, которые автоматически распараллеливают программы(тут я не буду очень настойчив, потому что слышал на уровне звона-деталей не знаю)
5. Процессоры уже где-то 2 десятка лет создают для компиляторов, а не для программистов, чем более низкоуровневый язык, тем меньше степеней свободы он оставляет для оптимизации компилятору. Т.е. любой более-менее быдлокод на низкоуровневом языке будет выполняться намного дольше чем на высокоуровневом. Чем больше программа, тем труднее ее оптимизировать вручную, поэтому с++ не годится для больших приложений-не разгребешься в килотоннах запутанного и взаимосвязанного кода. Да, для программы уровня 2+2 лучше всего ассемблер, но для сложных программ жизненно необходим высокоуровневый язык

нет извините просто лень переписывать написанное ранее сообщение
Код: plaintext
/topic/ 647881 &pg= 15 # 6978978 
1. спорный вопрос компиляторы, которые производят оптимизацию, пишет сам человек, следствие оставляю вам. соглашусь лишь с тем, что на сегодняшний момент компиляторы достигли высокого уровня кодогенерации, но лишь некоторые
2. отчасти причина в моем сообщении(ссылка выше)
3. тут я вас не понимаю, вы случаем не про нет?? если да то нету пофиг на чем писано приложение , если вы про натив код то неверю как может байт код машина обогнать натив код, хотя программы криво написаные на ассемблере спокойно проиграют С++
4. это все очень сложные вопросы когда у вас большие куски абстрактного кода то то транслятор по идее будет компоновать из больших определенных в нем разработчиками блоков, так что мне предсталяется более возможным играться именно с низкоуровневым кодом в целях его распараллеливания, так как имхо больше свободы и проще, но как говорится все возможно, просто разработчикам гемора будет больше
5 . опять же спорно как и 1 пункт компиляторы пишут люди, которые описывают этот самый процесс компиляции оптимизации, а не машина сама себе его придумывает. Плюс машины в простейших оптимизациях к примеру отслеживание повторноиспользуемого кода или значений и прочее, что физически трудно для человека, но это далеко не самые критичные моменты
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893969
Ммихалыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denПри написании в низкоуровневых языках будет
1. Время разработки стремящее к бесконечности
2. Быстродействие хуже чем у высокоуровневых языков

я имел в виду время исполнения :)
...
Рейтинг: 0 / 0
Скачал Common Lisp от Ufa Soft
    #35893995
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Gluk (Kazan) wrote:

> Нет, Солнце зашло (и уже довольно давно) :(
> На Солнце тролли каменеют

Так я вот и говорю, когда уже взойдёт обратно ?


Эпоха Кали только началась :(
Когда Брахма выдохнет
...
Рейтинг: 0 / 0
25 сообщений из 186, страница 5 из 8
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Скачал Common Lisp от Ufa Soft
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]