169 похожих чатов

А кто должен делать-то? рантайм?

12 ответов

8 просмотров

Думаю компилер

Pavel S
Думаю компилер

И много ты таких языков знаешь?

Pavel S
С#! Array.Empty()

Это литерал

Ayrat-Hudaygulov Автор вопроса
Pavel S
Думаю компилер

но для этого компилятору надо провести сложнейший ескейп анализ - надо вывести для каждого рекорда - что он гарантированно иммутабельный (не CLIMutable) - если рекорд аллоцируется в скоупе A.B.C, надо вывести что он не зависит от скоупа C и его можно вывести на скоуп A.B (чтобы переиспользовать!), а там он может быть зашадовлен - т.е. надо заманглить имя рекорды чтобы он не клешился с возможным другим биндингом (возможно другого типа!) - надо рекурсивно повторить ескейп анализ для скоупа A и пр и когда мы найдём максимально возможный скоуп где рекорд не зависит от внешних переменных, то там и объявлять Пример let foo x = let bar y = { A = x } здесь рекорд { A = ... } не зависит от скоупа функции bar (можно вывести по свободным переменным) и значит можно пробить скоуп этой функции и вынести его повыше let foo x = let __mangled__name__ = { A = x } let bar y = __mangled__name__ Здесь рекорд { A = ... } уже зависит от переменных скоупа и вынести дальше его не можем - оставляем

Ayrat-Hudaygulov Автор вопроса
Ayrat Hudaygulov
но для этого компилятору надо провести сложнейший ...

У тебя в примере в bar рекорд зависит от х, это не подходяший пример

Ayrat-Hudaygulov Автор вопроса
Pavel S
У тебя в примере в bar рекорд зависит от х, это не...

потому что у меня общий случай, ты точно понял мой пример?

Ayrat Hudaygulov
потому что у меня общий случай, ты точно понял мой...

Неуверен что понял что хотел сказать, но я говорю о кейсе когда при создании рекорда не используются внешние переменные! А у тебя используются, пример про другое..

Ayrat-Hudaygulov Автор вопроса

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
49
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Есть тут те у кого дети есть + 2 работы + в зал ходят + в семейной жизни все хорошо?
Abdul-Aziz M.
13
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Карта сайта