Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/254: Рейтинг темы: голосов - 254, средняя оценка - 4.70
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
08.02.2015, 11:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от korvin_ Посмотреть сообщение
Эээ... Не понял шутки.
Это же "краеугольный камень ооп", массивы обязаны быть проинициализированы. Ну это собственно и есть юмор.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
08.02.2015, 11:43
Цитата Сообщение от castorsky Посмотреть сообщение
Это же "краеугольный камень ооп", массивы обязаны быть проинициализированы. Ну это собственно и есть юмор.
Ага, надо было класс-владелец написать, который в конструкторе вызывал бы memset. =)
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 13:32  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А целые функции, написанные только на ассемблере бывают?
Это вопрос не ко мне, но я думаю, что бывают. Как же без этого?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
08.02.2015, 13:47
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Кстати, а не кто не хочет сегодня сыграть в чемпионат по программированию Rockethon 2015?
ну как успехи у D в соревнованиях?
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 13:50
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Это вопрос не ко мне, но я думаю, что бывают. Как же без этого?
... функции внутри исходного текста языка D, у которых только сигнатура на D, а тело функции на ассемблере бывают? Это не тоже что asm вставка внутри функции. Могла бы использоваться для реализации нестандартного соглашения о передачи параметров и подобного.
Впрочем, зря я спрашиваю. Нет там такого наверняка.

Добавлено через 2 минуты
Кста, а какие средства метапрограммирования там есть?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 15:08  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Кста, а какие средства метапрограммирования там есть?
D имеет массу возможностей для статического метапрограммирования. Фактически он настолько метаориентирован, что модульные тесты срабатывают дважды: при компиляции и при выполнении.
Язык D2 и метапрограммирование: всё страньше и страньше
Прочитайте особенно про Template Mixin.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
... функции внутри исходного текста языка D, у которых только сигнатура на D, а тело функции на ассемблере бывают? Это не тоже что asm вставка внутри функции. Могла бы использоваться для реализации нестандартного соглашения о передачи параметров и подобного.
Впрочем, зря я спрашиваю. Нет там такого наверняка.
Ну приведите пример, а я тогда уже посмотрю.
Я правильно понял: вы хотите, чтобы asm-вставка работала без функции void main() языка D?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import std.stdio;
 
void main() {
    version (D_InlineAsm_X86)
    {
        asm
        {
            mov EAX, 2;
            add EAX, 3;     // 2 + 3 = 5
            sub EAX, 11;    // 5 - 11 = -6
            mov ECX, EAX;   // ECX = -6
        }
    }
}
Цитата Сообщение от pycture Посмотреть сообщение
ну как успехи у D в соревнованиях?
Одну задачу решил (первую). Дело не в D. Чтобы решать такие задачи, нужно много времени этому посвятить. Можете сами попробовать сыграть в следующем чемпионате на C++ (посмотрю на ваши успехи). Может быть, подскажите, как добиться успеха в олимпиадном программировании (у меня, например, пока что нет никакого рецепта).
Вот, например, задачка (в ход уже пятимерные массивы пошли):
Разрезание массива
Решение задачи на C++
C++
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <memory.h>
#include <cassert>
 
using namespace std;
 
const int inf = (int)1e9;
const int N = 30010;
const int K = 210;
 
int f[N][K][2][3][3];
int a[N];
 
void check(int &a, int b) {
  if (b > a) a = b;
}
 
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= k; j++) {
      for (int in = 0; in < 2; in++) {
        for (int c1 = 0; c1 < 3; c1++) {
          for (int c2 = 0; c2 < 3; c2++) {
            f[i][j][in][c1][c2] = -inf;
          }
        }
      }
    }
  }
  f[0][0][0][1][1] = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= k; j++) {
      for (int in = 1; in >= 0; in--) {
        for (int c1 = 0; c1 < 3; c1++) {
          for (int c2 = 0; c2 < 3; c2++) {
            int ft = f[i][j][in][c1][c2];
            if (ft == -inf) {
              continue;
            }
            if (!in) {
              check(f[i + 1][j][0][c1][c2], ft);
              if (j < k) {
                for (int nc2 = 0; nc2 < 3; nc2++) {
                  if ((nc2 == 1) != (j + 1 == k)) {
                    continue;
                  }
                  check(f[i + 1][j + 1][1][c1][nc2], ft + a[i] * ((c1 - 1) + (nc2 - 1)));
                }
              }
            } else {
              check(f[i + 1][j][1][c1][c2], ft + a[i] * ((c1 - 1) + (c2 - 1)));
              check(f[i][j][0][2 - c2][1], ft);
            }
          }
        }
      }
    }
  }
  printf("%d\n", max(f[n][k][0][1][1], max(f[n][k][1][2][1], f[n][k][1][0][1])));
  return 0;
}


Добавлено через 23 минуты
Сейчас дела лучше, так как диалог был в 2012 (мне кажется, что в этих двух комментариях вся соль про D и изложена):
Диалог с хаба 2012 года
Цитата Сообщение от Goder
Если конкретно, то мне интересно, какие задачи D решает эффективнее других языков. Зачем его учить, для чего? От количества языков и технологий у меня лично уже кружится голова. И вот, новый (относительно) язык — D с лямбдами, шаблонами, миксинами, свойствами и прочим блекджеком. А как у него с IDE, дебаггером, кросплатформенностью, взаимодействием с другими платформами? Хороша ли стандартная библиотека, как быстро на нем можно разрабатывать? Какие есть средства для создания, скажем, автоматической документации, создания и запуска юнит-тестов?
Недавно смотрел доклад про новый язык [Kotlin] от JetBrains: как и положено современному языку, реализованы лямбды, свойства (полей вообще нет!), вывод типов и авто-касты, дженерики, паттерн матчинг есть. Есть прекрасная IDE и обратная совместимость с Java.
Почему бы не использовать для нового проекта Kotlin, а не D? Или остановится на уже зарекомендовавшей себя платформе .NET? Не из-за миксинов же на D переходить.

Есть задачи, где использование C++ против С# будет оправдано. Есть такие для D против C++11 или, скажем, Go?
Цитата Сообщение от Volfram
Зачем — мне неизвестен другой язык с такими разнообразными возможностями и последовательным дизайном. Да и выбор компилируемых языков с современными возможностями не слишком богат (назовите хоть один, сравнимый с D по возможностям — будет любопытно). Если же эти параметры для вас непринципиальны — учить его незачем, даже предлагать не буду. Целевая аудитория его, на мой взгляд, — не корпоративный сегмент, а одиночки-перфекционисты, желающие выжать максимум из инструмента.

С IDE, дебаггером, кроссплатформенностью и взаимодействием с другими платформами у него всё ограничено. Оно есть, но далеко от ожиданий того, кто привык к инфраструктуре той же Java. ( из IDE выделяется, пожалуй, VisualD плагин для VisualStudio ). Стандартная библиотека хороша, но мала. Создание автоматической документации встроено в язык ( все доки на официальном сайте сделаны с её помощью ). Юнит-тесты встроены в язык.

Почему не Kotlin? Ну, например, драйвера на нём особо не попишешь, судя по тому, что оно Java-based. А я люблю, когда есть один язык, на котором можно написать всё, от скриптов до ОС. На D — можно. Mixin, кстати, в моих глазах — уже достаточный аргумент для перехода, имеющий мало аналогов в других языках. Просто попробуйте реализовать приведённый пример на чём-нибудь другом, причём реализовать без хаков, с полным контролем ошибок и т.п. Это killing feature для писателей библиотек.

D может всё то же, что может и С++11, и ещё много сверху. Но имеет намного худший toolchain. Вот, собственно и всё описание задач, в которых он применим. ( Go — очень неудачный язык, после прочтения спеков не вызвал желания даже на «hello, world» ).

Извините, если вышло резковато, просто вопрос о том, что у D отвратительный toolchain поднимался уже столько раз, что не хочется про это говорить в рамках статьи, посвящённой вполне конкретной части дизайна языка.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 15:46
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Прочитайте особенно про Template Mixin.
Прочитал. Да, уже неплохо, особенно по сравнению с С++.
А возможность вставлять куски других языков (возможно, специально для этого созданных) в исходный код? К примеру, вставляем описание таблицы БД (на SQL, или, по крайней мере не на D ) и генерятся классы для работы с ней. Или вставляем заготовки JavaScript, и генерятся (во время компиляции) вспомогательные функции для построения (уже при выполнении) рабочего скрипта по этим заготовкам. (Мда, путано объясняю, а "парадигмами" всякими тоже изъясняться не хочется).
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Ну приведите пример, а я тогда уже посмотрю.
Я правильно понял: вы хотите, чтобы asm-вставка работала без функции void main() языка D?
Я уже приводил пример на Delphi - http://docwiki.embarcadero.com... _Functions На D бы это как то так выглядело:
C++
1
2
3
4
5
6
7
8
9
10
11
12
import std.stdio;
 
void main() {
    
   uint fun1(uint x, uint y) 
   asm version (D_InlineAsm_X86)
   {
            mov EAX, x;
            add EAX, y;
   }
   fun1(1,2);
}
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 16:05  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
На D бы это как то так выглядело:
Так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import std.stdio;
 
void main() {
    
    uint foo(uint x, uint y) {
 
        version (D_InlineAsm_X86) {
            asm {
                mov EAX, x;
                add EAX, y;
            }
        }
 
    }
 
    writeln(foo(6, 3)); // функция как-то умудряется возвратить содиржимое регистра EAX и печатает 9
}
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 16:17
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Так?
Нет. Отличие в том, что в Вашем случае до и после asm вставки генерируется изрядно кода.
Такие фишки нужны, например, если функцию передавать как callback куда то, в код не на D, а на чём нибудь специфическом. Ладно, не важно.

Возвращаясь к метапрограммированию. Спрошу по другому. Есть ли возможность или вызывать функции D во время компиляции (для генерации кода), либо возможность подгружать к D компилятору разделяемые библиотеки для реализации своих наворотов?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 17:00  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Есть ли возможность или вызывать функции D во время компиляции (для генерации кода)
Есть. Об этой возможности упоминается в предисловии книги на странице 19:
Андрей Александреску. Язык программирования D.
Миниатюры
D vs C++  
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 17:22  [ТС]
И ещё на страницах 218-224 есть параграф:
Вычисления во время компиляции

Добавлено через 6 минут
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Нет. Отличие в том, что в Вашем случае до и после asm вставки генерируется изрядно кода.
Ну так ведь ассемблерные вставки и не вызывают для того, чтобы сделать a + b. Другое дело, если там будет массивный и грамотный код на asm'e, тогда и будет профит.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
08.02.2015, 18:27
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Одну задачу решил (первую). Дело не в D. Чтобы решать такие задачи, нужно много времени этому посвятить. Можете сами попробовать сыграть в следующем чемпионате на C++ (посмотрю на ваши успехи).
первую и я решил. она зв 5 сек решается. заинтереовала задача о разрезании массива, но потом на втором примере выяснилось что там можно пропускать элементы, стало лень. в целом надо сказать что задачи мне не понравились. у гугла и фейсбука на порядок качественее и интреснее условия.
Может быть, подскажите, как добиться успеха в олимпиадном программировании (у меня, например, пока что нет никакого рецепта).
там обычно надо знать теорию вероятностей, комбинаторики и динамическое программирование. обычно 95% задач этим покрываются. но мне честно говоря лень прокачивать эти скиллы.

Добавлено через 1 минуту
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Решение задачи на C++
это рабочее решение?

Добавлено через 1 минуту
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
пример на Delphi
ёкорный бабай. они в этой эмбаркодере совсем с у ума посходили
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 18:40
Цитата Сообщение от pycture Посмотреть сообщение
ёкорный бабай. они в этой эмбаркодере совсем с у ума посходили
это и при Borland-е было.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
08.02.2015, 18:41
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
это и при Borland-е было
при борланде они не позицировались как кроссплатформенный компилятор.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 18:44
Цитата Сообщение от pycture Посмотреть сообщение
при борланде они не позицировались как кроссплатформенный компилятор.
При борланде они на линух напозицировывались.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 18:46  [ТС]
Цитата Сообщение от pycture Посмотреть сообщение
там обычно надо знать теорию вероятностей, комбинаторики и динамическое программирование. обычно 95% задач этим покрываются. но мне честно говоря лень прокачивать эти скиллы.
Задача на массивы как раз и является задачей на динамическое программирование (такие задачи я ещё не умею решать - надо как-то учиться).
Цитата Сообщение от pycture Посмотреть сообщение
первую и я решил. она зв 5 сек решается.
Эта задача меня рассмешила до ужаса. Первый раз такая "шутка" попалась. Ещё больше меня рассмешило, как её решил один из чемпионов мира прошлого года:
Уморное решение
C++
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cassert>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <string>
#include <vector>
#include <deque>
#include <queue>
#include <list>
#include <set>
#include <map>
#include <iostream>
 
#define pb push_back
#define mp make_pair
#define TASKNAME ""
 
#ifdef DEBUG
#define eprintf(...) fprintf(stderr,__VA_ARGS__)
#else
#define eprintf(...)
#endif
 
#define TIMESTAMP(x) eprintf("[" #x "] Time = %.3lfs\n",clock()*1.0/CLOCKS_PER_SEC)
 
#ifdef _WIN32
#define LLD "%I64d"
#else
#define LLD "%lld"
#endif
 
#define sz(x) ((int)(x).size())
#define forn(i, n) for (int i = 0; i < (n); i++)
 
using namespace std;
 
typedef long double ld;
typedef long long ll;
typedef vector<ll> vll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<bool> vb;
typedef vector<vb> vvb;
typedef pair<int, int> pii;
typedef pair<ll, int> pli;
typedef pair<int, ll> pil;
typedef pair<ll, ll> pll;
typedef vector<pii> vpii;
 
const int inf = 1e9;
const double eps = 1e-9;
const int INF = inf;
const double EPS = eps;
 
#ifdef DEBUG
struct __timestamper {
  ~__timestamper(){
    TIMESTAMP(end);
  }
} __Timestamper;
#else
struct __timestamper {};
#endif
 
/*Template end*/
 
int main() {
  #ifdef DEBUG
  freopen(TASKNAME".in","r",stdin);
  freopen(TASKNAME".out","w",stdout);
  #endif
 
  int n, m, k1, k2;
  while (scanf("%d%d%d%d", &n, &m, &k1, &k2) == 4) {
    int nm = max(n, m);
    vector<vvb> d(nm + 1, vvb(nm + 1, vb(2, false)));
    for (int cs = 0; cs <= 2 * nm; cs++)
    for (int v1 = 0; v1 <= nm; v1++) {
      int v2 = cs - v1;
      if (v2 < 0 || v2 > nm) continue;
      for (int tu = 0; tu < 2; tu++) {
        int maxv = tu == 0 ? k1 : k2;
        bool ok = false;
        for (int c = 1; c <= v1 && c <= maxv; c++) {
          if (!d[v2][v1 - c][!tu]) {
            ok = true;
            break;
          }
        }
        d[v1][v2][tu] = ok;
      }
    }
    printf("%s\n", d[n][m][0] ? "First" : "Second");
  }
 
  return 0;
}

Цитата Сообщение от pycture Посмотреть сообщение
у гугла и фейсбука на порядок качественее и интреснее условия.
Это только в этот раз такие "дербанутые" задачи от компании. На обычных соревнованиях там задачи попроще и поинтереснее. Мне самому они не понравились.
Цитата Сообщение от pycture Посмотреть сообщение
там обычно надо знать теорию вероятностей, комбинаторики и динамическое программирование. обычно 95% задач этим покрываются.
Это для меня не новость.
Цитата Сообщение от pycture Посмотреть сообщение
это рабочее решение?
Да. Хочу вам открыть "секрет" (после соревнования вы можете просматривать решения любого участника и дорешивать любые задачи даже прошлых чемпионатов):

А под каким ником вы зарегистрировались? Интересно глянуть, что вы там нарешали.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
08.02.2015, 19:55
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Интересно глянуть, что вы там нарешали.
на что там смотреть то
C#
1
2
3
4
5
        static void Main(string[] args)
        {
            var A = Console.ReadLine().Split().Select(int.Parse).ToArray();
            Console.Write(A[0] > A[1] ? "First" : "Second");
        }
остально как и сказал было лениво/неинтересно
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 20:42  [ТС]
Цитата Сообщение от pycture Посмотреть сообщение
на что там смотреть то
Я думал, что вы побольше решили.
А, так вы сишарпист? На C# мало кто такие олимпиадки строчит. C# - это пластиковые ножницы. Здесь нужен скальпель C++'са.
Цитата Сообщение от pycture Посмотреть сообщение
остально как и сказал было лениво/неинтересно
Ну, да. Поняли сразу, что на iPhone 6, можно не рассчитывать.

Добавлено через 13 минут
Смотрю на C#, и мне кажется, что этот язык...
Дерево с ограничениями
C#
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Rockethon2015
{
    class Program
    {
 
 
        static int[] treeL = new int[100010];
        static int[] treeR = new int[100010];
        static bool pretty = false;
 
        static int diro(int k, int c)
        {
            if (c != k) return -1;
            if (treeL[k] != 0) c = diro(treeL[k], c + 1);
            if (treeR[k] != 0) c = diro(treeR[k], c + 1);
            return c;
        }
 
        private static int outo(int k, int c)
        {
            if (treeL[k] != 0) c = outo(treeL[k], c + 1);
            if (pretty) Console.Write(" ");
            Console.Write("{0}", k);
            pretty = true;
            if (treeR[k] != 0) c = outo(treeR[k], c + 1);
            return c;
        }
 
        static void Main(string[] args)
        {
            Array.Clear(treeL, 0, treeL.Length);
            Array.Clear(treeR, 0, treeR.Length);
            //var a = "3 2".Split().Select(int.Parse).ToArray();
            //process("1 2 RIGHT");
            //process("1 3 LEFT");
            var a = Console.ReadLine().Split().Select(int.Parse).ToArray();
            for (int t = 0; t < a[1]; t++){
                process(Console.ReadLine());
            }
            if (diro(1, 1) < 0) Console.WriteLine("IMPOSSIBLE");
            else outo(1, 1);
            
 
            //Console.ReadKey();
        }
 
        private static void process(string p)
        {
            var yo = p.Split(' ');
            int i = int.Parse(yo[0]);
            if (yo[2] == "LEFT") {
                treeL[i] = int.Parse(yo[1]);
            }
            else {
                treeR[i] = int.Parse(yo[1]);
            }
        }
    }
}
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
08.02.2015, 20:48
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
А, так вы сишарпист
нет. я f#-ист

Добавлено через 3 минуты
после этого я смотрю на D "и мне кажется, что этот язык... "
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,676
Записей в блоге: 9
08.02.2015, 20:51
Цитата Сообщение от pycture Посмотреть сообщение
нет. я f#-ист
У меня сложилось впечатление, что f# идёт, как бы в довесок к другим #. В смысле, гуи всякие на C# делают. А f# для вызывать из них.
Я не прав? Полно полностью на нём написанных приложений?
И, что бы два раза не вставать: в .NET и моно нет совместимости по библиотеке из за разных осей (?). Т.е. нет приложений исполняемых и там и там и надо отдельно .NET и моно изучать?
Естественно, я ни того ни другого не знаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Закрытая тема Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru