[ЕОТ]
Мне вот интересно, в толксах бывали ЕОТ-треды?
Мне вот интересно, в толксах бывали ЕОТ-треды?
Лямбда-исчисление это конечно хорошо, но реальный мир в железе представлен регистровыми машинами (а местами и стековыми).
Существует ли развитая теория (по аналогии с лямбда исчислением) посвящённая регистровым/стековым машинам?
Машину Тьюринга не предлагать. Это конечно ближе чем лямбда-исчисление, но немного не то. Интересуют именно регистровые машины.
SICP читал, Ахо&Ульман — читаю сейчас
Киньте литературой (англ/рус).
Пусть у меня есть следующий тип данных:
data SomeDataType
= SomeDataType { name :: String,
func :: String -> String }
Мне необходимо сравнивать экземпляры этого типа. Добавляю deriving(Eq). Получаю:
example.hs:4:14:
No instance for (Eq (String -> String))
arising from the 'deriving' clause of a data type declaration
at example.hs:4:14-15
Possible fix:
add an instance declaration for (Eq (String -> String))
or use a standalone 'deriving instance' declaration instead,
so you can specify the instance context yourself
When deriving the instance for (Eq SomeDataType)
Это можно вылечить, указав что следует сравнивать только поля:
instance Eq SomeDataType where
x == y = (name x) == (name y)
Works. Но всё-таки это не дело.
Собственно, как в Haskell проверить на равенство функции?
Есть множество не пересекающихся отрезков в целочисленном множестве.
Есть точка (Одна координата). Необходимо выяснить, как можно быстрее, принадлежит ли эта точка хотя бы одному из данного множества отрезков. (Какому именно — не важно).
Я бы сделал двоичное дерево поиска, или упорядочил множество и искал бы двоичным поиском.
O(log n) — достаточно быстро.
Но может ЛОР знает более мудрый (интересный, крутой, труёвый) способ решения?
Как назвать по англицки участок памяти?
memory region — смысл несколько другой. Здесь подразумевается что память одна, и она поделена на участки. Мне необходимо передать смысл, как если бы эти участки памяти совершенно отдельные сущности.
В голову приходит лишь memory chunk, но что-то не очень.
Недавно начал раскуривать Twisted, возникли некоторые недопонимания.
Я делаю RPC-server. Во время обработки принятых данных (Читай, во время выполнения remote call) мне необходимо подключиться к другому серверу, получить-отправить некоторые данные.
Как сделать это правильно?
Хочу хранить кое-какие данные в JSON.
Написал схему, пользуюсь валидатором JSV.
Я хочу схему, в которой будут содержаться несколько схем, и ссылаться друг на друга в описании.
{ "id" : "forms-schema",
"properties"
: { "form-definition"
: { "type" : "object",
"properties"
: { "form-name" : { "type" : "string" },
"widgets"
: { "type" : "array",
"items" : { "$ref" : "#properties.widget-definition" } } } },
"widget-definition"
: { "type" : "object",
"properties"
: [ { "$ref" : "#properties.entry-definition" },
{ "$ref" : "#properties.choice-definition" },
{ "$ref" : "#properties.block-definition" } ] },
"entry-definition"
: { "type" : "object",
"properties"
: { "type" : { "type" : "string",
"enum" : [ "entry" ] },
"field-name" : { "type" : "string" },
"format" : { "type" : "string",
"enum" : [ "default",
"cyrillic-only",
"float",
"integer",
"date",
"time",
"date-time" ] } } },
"choice-definition"
: { "type" : "object",
"properties"
: { "type" : { "type" : "string",
"enum" : [ "choice" ] },
"field-name" : { "type" : "string" },
"mode" : { "type" : "string",
"enum" : [ "one-of",
"many-of",
"one-of-or-other",
"many-of-or-other" ] },
"items" : { "type" : "array",
"items" : { "type" : "string" } } } },
"block-definition"
: { "type" : "object",
"properties"
: { "type" : { "type" : "string",
"enum" : [ "block" ] },
"options"
: { "type" : [ "null",
{ "type" : "object",
"properties"
: { "mode" : { "type" : "string",
"enum" : [ "or-mode" ] },
"field-name" : { "type" : "string" } } } ],
"default" : null },
"widgets" : { "type" : "array",
"items" : { "$ref" : "#properties.widget-definition" } } } } },
"fragmentResolution" : "dot-delimited",
"links"
: [ { "rel" : "self", "href" : "{id}" } ] }
Далее:
var JSV = require('./jsv').JSV;
JSV.registerSchema(schema, schema["id"]);
// Схема корректно добавляется, видна в свойствах.
// Пробую провести валидацию:
JSV.validate(null, {"$ref" : "forms-schema#.properties.entry-definition"});
Возвращает errors=[], т.е. форма валидная. WTF?
Похоже что я неправильно задаю/использую ссылки.
Раскуривал вот эти документы:
http://tools.ietf.org/html/draft-zyp-json-schema-02
http://groups.google.com/group/json-schema/web/json-schema-proposal-working-draft
Хотелось бы увидеть какие-нибудь статьи на тему сабжа или около. Что-то не гуглится.
Впрочем мнение ЛОРа я тоже не прочь услышать.
Говоря «изменить» я имею ввиду: возможности макросов, введение каких-то дополнительных сущностей (например пространства имён) или наоборот, урезания возможностей (например, дабы уменьшить кол-во ошибок).
Разумеется, в стандартном Scheme до r6rs не было нормальных модулей (Кстати, нормальные в вашем понимании — это какие?), это учитывается.
Наверное неплохо бы ввести необязательную статическую типизацию — нет?
Сам я не админ.
У меня есть две машины. На первой я имею рутовый доступ. Есть вторая машина. На ней у меня есть лишь удалённый доступ по ssh, притом не рутовый. В отличие от первой машины, на второй есть интернет.
Обе машины находятся в одной локальной сети.
Вопрос: можно ли как-нибудь первой машине добраться до инета?
Мне было интересно во время выполнения поменять константу в скомпилированной функции. После определения относительного адреса константы в теле функции я попытался сделать вот что:
// here we set the constant:
((float *)func)[156] = 0.0;
Компилятор съел, но при попытке запустить сегфолт именно в этой строчке.
Как я понял, нельзя менять код во время выполнения.
Ну ладно, я выделил кусок памяти и скопировал туда содержимое по указателю func, привёл к нужному типу и попытался выполнить.
Снова сегфолт. Наша скопированная функция не хочет выполнятся. И что, получается я не могу выполнить кусок кода, сформированный в рантайме?
Собственно вопрос: Наверное я хочу странного, но как сделать то что я хочу? Это возможно в принципе? А как же работают JIT-компиляторы? А как тогда могут существовать полиморфные вирусы?
Ссылки на статьи/книги/мануалы приветствуются.
Я хочу передать лямбду в которой выполняются несколько процедур. Т.е. последовательное выполнение, как если бы инструкции были записаны между
begin .. end
Я делаю так:
l = lambda x: (do_some(),
do_other(),
do_foobar())
Немного не красиво, да и как я понял, совсем не обязательно действия будут выполняться последовательно.
Как можно красивее, именно лямбдой?
Я хочу использовать Qt в своём приложении, пользуясь Open Source Edition (т.е. бесплатно). Приложение пишется на скриптовом языке и использует проприетарные модули (написанные на сях).
Возможно ли такое? Или все части должны быть обязательно открыты и проприетарные модули недопустимы?
Вздумал запускать emacs --daemon, дабы наскрести малость скорости.
Записал в автозагрузку.
emacsclient -t работает на ура.
emacsclient -c никак. Пишет Waiting for Emacs... Появляется окошко и тут же выходит. Ошибок, криков о помощи не даёт. Тихо так дохнет.
Чем лечить?
Xubuntu 10.04. Ставил из репов.
Какие есть хорошие ресурсы на тему IT (lor-like) на немецком языке?
Интересует:
← назад |