Это разделение от обсуждения ранее вопроса.
Предположим, мне нужно определить функцию f, которая проверяет, является ли данная маркировка графа правильной раскраской. Другими словами, у нас есть целое число, назначенное каждому узлу, и никакие два соседних узла не получают одинаковый ответ. Например, для {"Path", 3}, f [{1,2,3}] возвращает True, а f [{1,1,2}] возвращает False. Как мне создать такую функцию для произвольного графа?
Следующее делает по существу то, что мне нужно, но генерирует предупреждения детали.
g[edges_] := Function @@ {{x}, And @@ (x[[First[#]]] != x[[Last[#]]] & /@ edges)}
f = g[GraphData[{"Path", 3}, "EdgeIndices"]];
f[{1, 2, 1}]==False
Это проблема игрушечного экземпляра, с которой я регулярно сталкиваюсь - мне нужно программно создать многомерную функцию f, и в итоге я получу либо 1) частичное предупреждение 2) отложить оценку g до оценки f